鍍金池/ 問(wèn)答/Java  Linux  網(wǎng)絡(luò)安全/ dockerfile基于之前的鏡像構(gòu)建了一個(gè)性的鏡像,原來(lái)的鏡像的dockerf

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

1、原來(lái)的dockerfile,基于centos:7構(gòu)建一個(gè)安裝了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、基于剛剛構(gòu)建的鏡像構(gòu)建一個(gè)安裝了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、構(gòu)建完成后運(yùn)行tomcat這個(gè)鏡像發(fā)現(xiàn)之前的那個(gè)鏡像指定的CMD沒(méi)有執(zhí)行

回答
編輯回答
涼薄

CMD 只能有一個(gè). 你應(yīng)該用 RUN.

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

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

2017年4月22日 11:53