dockerfile指令

需求:安装一个MySQL,且启动

如果是虚拟机部署形式的话如下

1.开启vmware

2.运行某一个虚拟机,centos7

3.centos7安装MySQL,yum install mysql-server

4.通过脚本,或者命令,启动MySQL即可

缺点:部署慢,且修改了宿主机的环境,删除较为麻烦,占用宿主机的一个3306端口

基于容器去运行MySQL

1.开始VMware

2.运行虚拟机centos7

3.安装docker容器环境

4.获取MySQL镜像即可,docker pull mysql:tag(你无法自由控制,该MySQL的基础镜像是什么发行版,你获取的镜像,是别人定制好,你下载使用你希望得到一个基于centos7.8d的发行版本,运行MySQL)

5。直接运行该镜像,通过端口映射,运行MySQLdocker runmysql:5.6(容器能够运行,必须在容器内有一个进程在前台运行,该容器内,有Mysql正在前台运行)

6.访问宿主机的一个映射端口,访问到容器内的MySQL

dockerfile指令

FROM ----这个镜像的妈妈是谁?(指定基础镜像)

MAINTAINER ----告诉别人,谁负责养它? (指定维护者信息,可以没有)

RUN -----你想让它干啥 (在命令前面加上RUN即可)

ADD---- 添加宿主机的文件到容器内 ,还多了一个自动解压的功能

RUN tar -zxf /opt/xx.tgz  #报错!该 tgz 文件不存在!!

COPY  --- 作用和ADD是一样的,主要是拷贝宿主机的文件到容器内,COPY就是仅仅拷贝

WORKDIR---- 我是cd,今天刚化了妆 (设置当前工作目录)

VOLUME----给它一个存放行李的地方 (设置卷,挂载主机目录)

EXPOSE----它要打开的门是啥 (指定对外的端口)

CMD---- 奔跑吧,兄弟!(指定容器启动后的要千的事情)dockerfile其他指令:
COPY ----复制文件
ENV----环境变量
ENTRYPOINT -----容器启动后执行的命令