无法在 centos Docker 中使用 Systemctl 命令

问题描述

我尝试在 docker 容器中安装 httpd,并尝试通过 docker 中的 systemctl 重新启动 httpd。但我遇到了如下异常

enter image description here

根据我的分析,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 (将#修改为@)