dockerfile指令详解
警告
本文最后更新于 2020-05-30 17:09,文中内容可能已过时。
dockerfile指令:
FROM:指定基础镜像
#语法示例 FROM centos FROM centos:6.9 #不加tag标签,默认是latest
MAINTAINER:(可选)维护者信息
#语法示例 MAINTAINER my name is soulchild.
LABLE:(可选)标签、描述信息,可以写成多个LABLE,建议只写一个,可以使用\符号
#语法示例 LABEL version="1.1" \ description="this is example"
RUN:构建镜像时执行的命令,每一个RUN都会生成一层镜像,可以使用&&和\来解决多层臃肿的问题。
#语法示例 RUN yum install -y openssh-server && \ service sshd start && \ echo '123456' | passwd root --stdin
ADD:将文件复制到镜像中,如果文件格式是tar包,会自动解压,还可以访问网络资源
#语法示例 ADD /root/test.tar.gz /opt/ ADD http://xxx.xxx.com/download/xx.zip /opt
COPY:将文件复制到镜像中
#语法示例 COPY /root/kod.conf /etc/nginx/conf.d/kod.conf
ENV:设置环境变量
#语法示例 #1.一次只能设置一个 ENV a 123 #2.一次可以设置多个,支持\换行 ENV b=456 c=789 #运行容器时需要指定-e参数
WORKDIR:切换工作目录,相当于cd
#语法示例 WORKDIR /opt
EXPOSE:端口映射
#语法示例 EXPOSE 80 443 EXPOSE 22/tcp 23/udp #需要在容器运行时指定-P参数,才会将宿主机随机端口映射到容器发布的端口
VOLUME:设置卷,挂载目录
#语法示例 VOLUME /usr/share/nginx/html #启动容器时会自动生成一个卷,可以通过docker volume [command],查看卷的详细信息
CMD:容器启动后的初始命令,此参数只能出现一次。如果在运行容器时指定运行命令了,此参数无效,会被替换掉。
#格式: CMD ["命令","参数1","参数2"] #语法示例 CMD ["/usr/sbin/sshd","-D"]
ENTRYPOINT:启动容器时如果手动指定了一个命令,会被追加到最后当作参数而执行,
#格式: ENTRYPOINT ["命令","参数1","参数2"] #语法示例 ENTRYPOINT ["/bin/bash","init.sh"] #容器运行 docker run -d entrypoint:test hello 实际上运行的初始命令是/bin/bash init.sh hello
请我喝杯水
微信号
微信打赏