带有 Centos 7 和 systemd 的 Docker 容器

T. *_*azh 2 centos systemd docker

我正在尝试按照https://hub.docker.com/_/centos/ 中的描述运行 centos+systemd Docker 容器。

  1. docker build --rm -t local/c7-systemd c7-systemd

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"]
Run Code Online (Sandbox Code Playgroud)
  1. docker build --rm -t local/c7-systemd-httpd c7-systemd-httpd

Dockerfile:

    FROM local/c7-systemd
    RUN echo "myproxy" >> /etc/yum.conf
    RUN yum -y install httpd; yum clean all; systemctl enable httpd.service
    EXPOSE 80
    CMD ["/usr/sbin/init"]
Run Code Online (Sandbox Code Playgroud)
  1. docker run -ti --cap-add SYS_ADMIN --security-opt seccomp:unconfined -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 local/c7-systemd /bin/bash

我也试过,--privileged但每次我得到这个:

    [root@e29ecfb082d8 /]# systemctl status
    Failed to get D-Bus connection: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我在 Cygwin 中运行它,Docker 版本 18.03.1-ce,构建 9ee9f40(Docker for Windows)。

能否请您说一下是否有任何方法可以获得具有此配置的可用 centos7+systemd 容器?

T. *_*azh 11

我有一个工作容器https://hub.docker.com/r/centos/systemd/

  1. docker build --rm --no-cache -t c7-systemd-off c7-systemd-off

Dockerfile:

    FROM centos/systemd

    RUN echo "myproxy" >> /etc/yum.conf
    RUN yum -y install httpd; yum clean all; systemctl enable httpd.service

    EXPOSE 80

    CMD ["/usr/sbin/init"]
Run Code Online (Sandbox Code Playgroud)
  1. docker run --privileged --name c7 -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 -d c7-systemd-off

  2. docker exec -it c7 /bin/bash