【发布时间】:2015-04-25 12:19:33
【问题描述】:
我创建了一个基于 CentOS 7 的 Docker 镜像。我希望 Docker 容器在我执行 Docker 运行命令时能够自动启动 Apache 和 Tomcat 服务。
我的 docker start 命令是:
sudo docker run --privileged -ti --name apache-tomcat-mobile --rm -v /software:/software -p 81:80 local/web-apache /app/scripts/start-web.sh
但是我总是报这个错误:
exec format errorFATA[0000] 来自守护进程的错误响应:无法启动容器 7332a91875c1aefb0d6c5160a69fe1c21058c06673b6e4058c81a8641af53baa:exec 格式错误
我的start-web.sh只有两个task,一个是tomcat startup.sh,另一个是httpd -k start。
我已经为 start-web.sh 设置了足够的权限。
当我执行 `sudo docker run --privileged -ti --name apache-tomcat-mobile --rm -v /software:/software -p 81:80 local/web-apache /bin/bash,没有错误发生。
The docker file I used based on CentOS7. The bas docker file is :
FROM centos:7
MAINTAINER "edao99" <jianghy_bj@hotmail.com>
ENV container docker
RUN yum -y swap -- remove fakesystemd -- install systemd systemd-libs
RUN yum -y update; yum clean all;\
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done);\
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
The actually docker filed used for apache and tomcat is inherited from the base docker. The apache docker file is:
FROM local/c7-systemd
RUN yum -y install gcc; yum clean all;
RUN yum -y install httpd; yum clean all;
RUN yum -y install apr-util-devel; yum clean all;
RUN yum -y install httpd-devel; yum clean all;
RUN yum -y install wget; yum clean all;
RUN yum -y install make; yum clean all;
RUN yum -y install tar; yum clean all;
RUN systemctl enable httpd.service
EXPOSE 80
CMD ["/usr/sbin/init"]
我从互联网上搜索了解决方案,但没有发现类似的问题。 谁能帮我解决这个问题?
谢谢。
【问题讨论】:
-
我们需要了解更多。你能提供你的 Dockerfile,尤其是任何 ENTRYPOINT 指令吗?还要提供 start-web.sh 的实际内容。
-
嗨,我添加了我在问题描述中使用的 docker 文件,因为注释不允许写入太多字符。
-
这是放置它的正确位置:)
标签: apache tomcat docker centos7