跳到内容

Systemd 容器

Systemd 容器

要启动一个需要 systemd 的服务,在一个非特权容器中,请使用符合 systemd 的镜像、tmpfs、卷和命令配置 molecule.yml,如下所示。

platforms:
  - name: instance
    image: quay.io/centos/centos:stream8
    command: /sbin/init
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro

在需要时,可以重用此类安全配置文件(例如,Fedora 中提供的配置文件

platforms:
  - name: instance
    image: debian:stretch
    command: /sbin/init
    security_opts:
      - seccomp=path/to/seccomp.json
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro

开发人员还可以选择以扩展的权限启动容器,方法是赋予其 SYS_ADMIN 功能或以 privileged 模式运行。

警告

使用 privileged 模式或 SYS_ADMIN 功能时请务必小心,因为它会授予容器对底层系统的提升访问权限。

为了限制扩展权限的范围,请授予 SYS_ADMIN 功能,以及与 非特权 示例中相同的镜像、命令和卷。

platforms:
  - name: instance
    image: quay.io/centos/centos:stream8
    command: /sbin/init
    capabilities:
      - SYS_ADMIN
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro

要在 privileged 模式下启动容器,请设置 privileged 标志,并使用与 非特权 示例中相同的镜像和命令。

platforms:
  - name: instance
    image: quay.io/centos/centos:stream8
    command: /sbin/init
    privileged: True