鍍金池/ 問答/Java  Linux  網絡安全/ dockerfile基于之前的鏡像構建了一個性的鏡像,原來的鏡像的dockerf

dockerfile基于之前的鏡像構建了一個性的鏡像,原來的鏡像的dockerfile中指定的CMD不執(zhí)行了

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這個鏡像發(fā)現之前的那個鏡像指定的CMD沒有執(zhí)行

回答
編輯回答
涼薄

CMD 只能有一個. 你應該用 RUN.

2017年9月20日 19:16
編輯回答
赱丅呿

這是對的,CMDdocker run執(zhí)行的腳本,是運行狀態(tài)的配置,所以你FROM之后,自然被你新的CMD配置覆蓋掉了

2017年4月22日 11:53