dockerfile build 的镜像不能启动


问题描述:
使用dockerfile build的镜像,本地构建,基础镜像为centos,添加java和tomcat,build成功后不能启动,物理机操作系统为centos7,docker版本1.71

dockerfile 为
FROM centos
MAINTAINER charles zhang 

INSTALL JAVA

RUN yum makecache
RUN yum install wget --nogpgcheck -y
ADD jdk-*.rpm /
RUN yum install /jdk-*.rpm --nogpgcheck -y
ENV JAVA_HOME /usr/java/jdk1.8.0_65
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV TOMCAT_MAJOR_VERSION 7
ENV TOMCAT_MINOR_VERSION 7.0.55
RUN mkdir /tomcat
ENV CATALINA_HOME /tomcat

INSTALL TOMCAT

RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz && \
wget -qO- https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz.md5 | md5sum -c - && \
tar zxf apache-tomcat-*.tar.gz && \
mv apache-tomcat* tomcat

ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh

RUN rm -rf /jdk-*.rpm apache-tomcat-*.tar.gz
RUN yum clean all

EXPOSE 8080
CMD ["/run.sh"]


build 命令
docker build zcl-tomcat:build001 .


启动容器
docker run -p 8080:8080 -d zcl-tomcat:build001


报错为
9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec
Error response from daemon: Cannot start container 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec: [8] System error: no such file or directory


日志中相应
Oct 22 13:42:08 localhost docker: time="2015-10-22T13:42:08.708806931+08:00" level=info msg="POST /v1.19/containers/create"
Oct 22 13:42:08 localhost docker: time="2015-10-22T13:42:08.854875623+08:00" level=info msg="POST /v1.19/containers/9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec/start"
Oct 22 13:42:08 localhost kernel: docker0: port 2(veth2442a48) entered forwarding state
Oct 22 13:42:08 localhost kernel: docker0: port 2(veth2442a48) entered forwarding state
Oct 22 13:42:08 localhost NetworkManager[588]: <info>  (docker0): bridge port veth2442a48 was attached
Oct 22 13:42:08 localhost NetworkManager[588]: <info>  (veth2442a48): enslaved to docker0
Oct 22 13:42:08 localhost systemd: Starting docker container 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec.
Oct 22 13:42:08 localhost systemd: Started docker container 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec.
Oct 22 13:42:09 localhost docker: time="2015-10-22T13:42:09.008782918+08:00" level=warning msg="exit status 1"
Oct 22 13:42:09 localhost kernel: docker0: port 2(veth2442a48) entered disabled state
Oct 22 13:42:09 localhost kernel: docker0: port 2(veth2442a48) entered disabled state
Oct 22 13:42:09 localhost NetworkManager[588]: <warn>  (docker0): failed to detach bridge port veth2442a48
Oct 22 13:42:09 localhost docker: time="2015-10-22T13:42:09.072661811+08:00" level=error msg="Error unmounting device 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec: UnmountDevice: device not-mounted id 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec"
Oct 22 13:42:09 localhost docker: time="2015-10-22T13:42:09.072792958+08:00" level=error msg="Handler for POST /containers/{name:.*}/start returned error: Cannot start container 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec: [8] System error: no such file or directory"
Oct 22 13:42:09 localhost docker: time="2015-10-22T13:42:09.072822444+08:00" level=error msg="HTTP Error" err="Cannot start container 9e926f495a6e5bdac6ab74c45cc255fe9bd960b7e05543bca121ef8756aa5fec: [8] System error: no such file or directory" statusCode=404


希望能够给点解决思路 谢谢
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自:


可以自己先尝试调试一下
调试方法为把CMD 改为/bin/bash
这个build和启动应该都可以。
然后run起来之后,通过attach 进入,执行/run.sh。看报什么错误。尝试解决之。然后再修改dockerfile。

谭叔叔

赞同来自:


no such file or directory

要回复问题请先登录注册