> Docker安装教程 > Dockerfile指令

Dockerfile指令

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指令:等您坐沙发呢!

发表评论

表情
还能输入210个字