DockerFile指令

DockerFile是用来构建docker镜像的文件!实际上是个命令脚本

构建步骤:

1、编写一个dockerfile文件。

2、docker bulid 构建成为一个镜像。

3、docker run运行镜像。

4、docker push 发布镜像(DockerHub、阿里云镜像仓库)。

DockerFile构建过程:

1、每个保留关键字(指令)都必须是大写字母,后面加空格,然后追加指令值。

2、指令从上到下顺序执行。

3、#标识注释

4、每条指令都会创建提交一个新的镜像,并提交!

 DockerFile指令:

FROM                      #基础镜像

MAINTAINER         #镜像维护人;姓名+邮箱

RUN                         #镜像构建时需要运行的命令

ADD                         #Tomcat镜像,tomcat压缩包添加内容

WORKDIR               #镜像工作目录

VOLUME                 #挂载卷目录

EXPOSE                 #暴漏端口

CMD                       #指定容器启动时要运行的命令 CMD echo  "----end----"

ENTRYPOINT        #指定容器启动时要运行的命令 同CMD区别是可以追加命令

ONBUILD               #当构建一个被继承DockerFile时,执行ONBUILD指令,触发指令

COPY                    #文件复制到镜像

ENV                      #设置环境

自己创建一个centos的dockerfile

cd /home

mkdir dockerfile

vim dockerfile-centos

内容如下

FROM centos
LABEL MAINTATNER="zbk<1546232926@qq.com>"

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80
CMD echo "---build success----"
CMD /bin/bash

build镜像

docker build -f dockerfile-centos -t mycentosplus:0.1 .

运行镜像

docker run -it mycentosplus:0.1 /bin/bash

pwd                       查看当前默认工作路径已经指定为 /usr/local,即我们设置的ENV中的path。

CMD和ENTRYPOINT的区别

构建两个dockerfile文件,分别为dockerfile-cmd和dockerfile-entrypoint

dockerfile-cmd内容如下:

FROM centos

CMD ["ls","-a"]

dockerfile-entrypoint内容如下:

FROM centos

ENTRYPOINT ["ls","-a"]

构建镜像后,同样执行命令 docker run ID -l,可以发现使用CMD构建的镜像会启动会报错,而ENTRYPOINT则可以正常的显示文件目录列表,得出结论:

CMD 后不可追加命令执行,而ENTRYPOINT则可以。

原文地址:https://www.cnblogs.com/kui-technology/p/13360561.html