Failed to get D-Bus connection: Operation not permitted —解决Docker中C...

解决Docker中CentOS镜像无法使用systemd的问题

  1. 创建DockerFile

    mkdir /root/centos-systemd
    cd /root/centos-systemd
    vim DockerFile
    
    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"]
    
    ESC
    :wq
  2. 下载镜像并命名为centos-systemd:7

    cd /root/centos-systemd
    docker build --rm -t centos-systemd:7 .
  3. 通过centos-systemd:7镜像生成一个名为centos-systemd的容器

    docker run -d -i -t --privileged=true --name centos-systemd -v /sys/fs/cgroup:/sys/fs/cgroup:ro centos-systemd:7
  4. 连接到名为centos-systemd的容器

    docker exec -i -t centos-systemd /bin/bash
  5. 测试systemd启动是否成功

    systemctl --help
  6. 也可以下载我已经做好的一个支持systemd的镜像

    # 下载镜像
    docker pull 2233466866/centos-systemd
    # 通过镜像运行一个名为test的容器
    docker run -dit -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name=test --privileged=true 2233466866/centos-systemd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值