运维木子小李架构师之路
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"]

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏
多谢大佬的支持

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"Dockerfile指令"

最新评论

    暂无留言哦~~

博客简介

精彩评论

站点统计

  • 文章总数: 29 篇
  • 草稿数目: 0 篇
  • 分类数目: 14 个
  • 独立页面: 0 个
  • 评论总数: 8 条
  • 链接总数: 6 个
  • 标签总数: 12 个
  • 注册用户: 48 人
  • 访问总量: 8,690,859 次
  • 最近更新: 2023年5月21日
服务热线:
 17608504224

 QQ在线交流

 旺旺在线