H5W3
当前位置:H5W3 > 其他技术问题 > 正文

dockerfile基于之前的镜像构建了一个性的镜像,原来的镜像的dockerfile中指定的CMD不执行了

1、原来的dockerfile,基于centos:7构建一个安装了jdk的镜像
FROM centos:7

MAINTAINER wenyoulong <3424675994@qq.com>

ENV JAVA_HOME /usr/local/java/jdk1.8.0_181
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

COPY jdk-8u181-linux-x64.tar.gz /java/jdk-8u181-linux-x64.tar.gz
COPY setup.sh /java/setup.sh

CMD [“sh”, “/java/setup.sh”]

2、基于刚刚构建的镜像构建一个安装了tomcat的新镜像
FROM my-java:latest

MAINTAINER wenyoulong <3424675994@qq.com>

COPY apache-tomcat-8.5.33.tar.gz /tomcat/apache-tomcat-8.5.33.tar.gz
COPY setup.sh /tomcat/setup.sh

CMD [“sh”, “/tomcat/setup.sh”]

3、构建完成后运行tomcat这个镜像发现之前的那个镜像指定的CMD没有执行

回答:

这是对的,CMDdocker run执行的脚本,是运行状态的配置,所以你FROM之后,自然被你新的CMD配置覆盖掉了

回答:

CMD 只能有一个. 你应该用 RUN.

本文地址:H5W3 » dockerfile基于之前的镜像构建了一个性的镜像,原来的镜像的dockerfile中指定的CMD不执行了

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址