Podman

来自 阿尔派 Linux

安装

Podman 可以通过社区仓库中的 podman 软件包安装。

# apk add podman

以 root 用户身份运行

要运行 podman,您需要启用 cgroups 服务,考虑启用 cgroups v2

# rc-update add cgroups

# rc-service cgroups start

您可能需要重启您的机器才能使其正常工作。

如果您在 Btrfs 之上运行,请考虑将存储驱动程序设置为 btrfs

$ cat /etc/containers/storage.conf

driver = "btrfs"

如果您在容器内运行,请将存储驱动程序更改为 vfs

以无 root 模式运行

为了无 root 支持 (将 <USER> 替换为您的用户名)

# modprobe tun # echo tun >>/etc/modules # echo <USER>:100000:65536 >/etc/subuid # echo <USER>:100000:65536 >/etc/subgid

运行一个示例容器以验证一切正常

$ podman run --rm hello-world

共享挂载

Linux 上的容器可能需要以与内核默认的 'private' 不同的传播方式挂载文件系统。如果您看到警告

WARN[0000] "/" 不是共享挂载,这可能会导致无 root 容器出现问题或挂载丢失

您可能需要临时修复此问题,对于当前运行的系统

# mount --make-rshared /

并再次尝试导致警告的命令。

或者,您可以使用以下命令

# findmnt -o PROPAGATION /

这应该打印

   PROPAGATION
   shared

为了永久修复 (在 OpenRC PR#526 发布后 - 在比 0.54.2-r1 更新的版本中),编辑 /etc/fstab

# $EDITOR /etc/fstab

shared 选项添加到根分区

  /dev/sda2 / ext4 rw,relatime,shared 0 1

并在重启后像上面一样测试它。

Docker Compose

Podman 提供了 docker compose 的直接替代品。 podman-compose 软件包提供了这个功能。

每次使用 docker compose 时,都会有警告提醒您这正在使用底层的 podman。可以通过运行以下命令永久消除此警告

# touch /etc/containers/nodocker