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 标志,并使用与 非特权
示例中相同的镜像和命令。