1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | FROM 设置镜像使用的基础镜像 MAINTAINER 设置镜像的构建时间和作者 【这个也被官方弃用,现在使用的是{LABEL}】 RUN 编译镜像时运行的脚本 CMD 设置容器的启动命令 LABEL 设置容器的标签 EXPOESE 设置容器暴露的端口 ENV 设置容器的环境变量 ADD 编译镜像时复制文件到镜像中【有自动解压功能】 COPY 编译镜像时复制文件到镜像中 ENTRYPOINT 设置容器的入口程序 VOLUME 设置容器的挂载卷 USER 设置运行RUN CMD ENTRYPOINT的用户名 WORKDIR 设置 RUN CMD ENTRYPOINT COPY ADD指令的工作目录 ARG 设置编译镜像时加人的参数 ONBUILD 设置镜像的NOBUILD指令 STOPSIGNAL 设置容器的退出信号量 |
CMD和ENTRYPOINT的区别
多个cmd dockerfile 这运行一个cmd
a 中只能有一条CMD指令Dockerfile。如果您列出多个,CMD 则只有最后一个CMD才会生效。
a 的主要目的是为CMD正在执行的容器提供默认值。这些默认值可以包含可执行文件,也可以省略可执行文件,在这种情况下,您还必须指定ENTRYPOINT 指令。
参考案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # docker build -t jenkins:v1 . # docker run -itd --name jenkins001 --hostname jenkins001 --volume /home/jenkins001:/root/.jenkins -p 8081:8080 jenkins:v1 FROM centos:7.9.2009 MAINTAINER limaolin 2021-5-31 13:24:42 ADD jdk-8u191-linux-x64.tar.gz /usr/local/ ENV JAVA_HOME /usr/local/jdk1.8.0_191 ENV CLASSPATH $JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH ADD Jenkins.tar.gz /usr/local/ EXPOSE 8080 22 WORKDIR /root/.jenkins ENV DIR /usr/local/Jenkins/bin RUN yum install openssh-clients openssh-server net-tools -y RUN echo 1|passwd --stdin root RUN ssh-keygen -A CMD /usr/sbin/sshd ENTRYPOINT /usr/sbin/init CMD ["/bin/bash -c","$DIR/catalina.sh run","/usr/sbin/sshd", "-D"] |
「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」
上一篇:Dockerfile构建实战
下一篇:实战构建jdk-jenkins