docker centos7 镜像 systemctl 报错 Failed to get D-Bus connection: Operation not permitted 添加systemd支持

从docker下载默认的CentOS镜像没有开启systemd,执行systemctl命令会显示“Failed to get D-Bus connection: Operation not permitted”错误 ,如果docker创建centos7的容器涉及到systemctl服务操作,或者需要实现容器开机后自动启动服务功能。需要调整镜像并且修改镜像启动方式。

1. docker拉取centos7镜像

docker pull centos:centos7.9.2009
在这里插入图片描述

2. 编写dockerfile文件

vi centos.dockerfile

添加以下内容上去

FROM centos:centos7.9.2009
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"]

3. 制作镜像

docker build -t centos7.9 -f centos.dockerfile .

在这里插入图片描述

4. 在docker中查看镜像是否被制作好

docker images

在这里插入图片描述

5. 启动镜像

docker run -dit --privileged=true --name=centos7 centos7.9 /sbin/init

6.检查容器是否启动成功

docker ps -a

7.进入容器

docker exec -it centos7 /bin/bash

在这里插入图片描述

8.systemctl测试

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值