我必须为我公司的解决方案构建一个Image Docker。 此Image必须包含一些依赖项,并且必须基于centos7。在这些依赖项中,有httpd。
所以,根据这些解释,我用这个Dockerfile构建了一个带有systemd的CentOS 7映像:https://hub.docker.com/_/centos/
我的centos7 / Dockerfile
FROM centos:centos7 ENV container docker RUN (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/*; RUN yum -y install deltarpm && yum clean all RUN yum -y update && yum clean all RUN yum -y install vim wget tar && yum clean all VOLUME ["/sys/fs/cgroup"] CMD ["/usr/sbin/init"]
我将此图像推送到我的存储库“agilium / centos7” 我根据相同的解释为httpd编写了另一个Dockerfile: 我的httpd / Dockerfile
FROM agilium/centos7 RUN yum -y update && yum clean all RUN yum -y install httpd; yum clean all; systemctl enable httpd.service EXPOSE 80 CMD ["/usr/sbin/init"]
构建图像时出现此错误: Error unpacking rpm package httpd-2.4.6-40.el7.centos.1.x86_64
我也尝试过本地安装rpm包,但是出现了同样的错误:
COPY ./install/* ./install/ RUN yum -y localinstall ./install/httpd-2.4.6-40.el7.centos.1.x86_64.rpm
我搜索解决方案,我在github上发现了一个问题(问题#461),但似乎没有找到解决方案,问题已经解决了。 = /
感谢您的帮助。
答案 0 :(得分:0)
如果你有这个问题尝试从Centos 6,我试图继续使用devicemapper而不是aufs,我的Docker崩溃了,我无法重启它或者其他什么......
我做了一个实际工作的Dockerfile,至少在你进入容器之前:
FROM centos:6 RUN yum -y update \ && yum install -y vim \ && yum install -y httpd \ && yum install -y mysql \ && yum install -y php EXPOSE 80 443 3306 CMD service httpd start \ && clear \ && bash