Failed to get D-Bus connection: Operation not permitted —解决Docker中CentOS镜像无法使用systemd的问题

我的个人网站

1.解决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

2.使用已经创建好的镜像(本文第二部分)

  1. 也可以下载我已经做好的一个支持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
上一篇:《x86汇编语言:从实模式到保护模式》笔记


下一篇:javascript 手机移动端 微信 拍照 录音 录视频并阿里oss上传