问题描述
我尝试在 docker 容器中安装 httpd,并尝试通过 docker 中的 systemctl 重新启动 httpd。但我遇到了如下异常
根据我的分析,docker 基础镜像中默认没有启用 systemctl,专家建议如下配置。
FROM centos:7
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/*;
VOLUME [ “/sys/fs/cgroup” ]
CMD ["/usr/sbin/init"]
我尝试了同样的方法,但仍然没有运气。我尝试使用 centos/systemd 作为我的基本映像的另一种选择,但没有运气。这是我正在尝试的示例 docker 文件。
FROM centos:7
RUN yum -y install httpd PHP PHP-MysqL PHP-gd mariadb-server PHP-xml PHP-intl MysqL weget
RUN systemctl restart httpd.service
RUN systemctl enable httpd.service
RUN systemctl start mariadb
RUN systemctl enable mariadb
# RUN MysqL -u root -p -u root
EXPOSE 80
有人请教我吗?还有其他可能以不同的方式实现相同的目标吗?
参考文献:
Docker CentOS systemctl not permitted https://forums.docker.com/t/systemctl-status-is-not-working-in-my-docker-container/9075/2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)