Docker

来自 Alpine Linux

安装

docker 软件包位于 community 仓库中。请参阅 仓库 了解如何添加仓库。

apk add docker

以 root 身份运行 Docker

要使 Docker 守护进程在启动时运行,请参阅 OpenRC

rc-update add docker default
service docker start

要通过其套接字连接到 Docker 守护进程,您需要将自己添加到 docker 用户组。

addgroup ${USER} docker
警告: 将用户添加到此用户组等同于授予他们主机上的完整 root 访问权限。 请参阅上游文档


Rootless Docker

Rootless Docker 允许非特权用户在用户命名空间中运行 docker 守护进程和 docker 容器。这与下面部分中解释的 dockremap 不同。使用 dockremap,守护进程仍然以 root 身份运行。

这需要 docker-rootless-extras 软件包(在 community 仓库中可用)并启用 cgroups v2:编辑 /etc/rc.conf 并设置 rc_cgroup_mode="unified"。然后在启动时启动服务

rc-update add cgroups

此外,需要按照 官方文档 中的说明设置 /etc/subuid/etc/subgid 文件。

Docker Compose

docker-cli-compose 软件包从 Alpine Linux 3.15 开始位于 community 仓库中。

apk add docker-cli-compose

使用用户命名空间隔离容器

adduser -SDHs /sbin/nologin dockremap
addgroup -S dockremap
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 >> /etc/subuid
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 >> /etc/subgid

添加到 /etc/docker/daemon.json

{  
        "userns-remap": "dockremap"
}

您也可以考虑以下选项 

       "experimental": false,
       "live-restore": true,
       "ipv6": false,
       "icc": false,
       "no-new-privileges": false

您可以在这里找到所有可能的配置。

“警告:不支持 {swap,memory} 限制”

当执行 docker info 时,您可能会遇到此消息。要纠正这种情况,我们必须启用 cgroup_enable=memory swapaccount=1

Grub

如果您使用 Grub,请将 cgroup 条件添加到 /etc/default/grub 中,然后升级您的 grub

GRUB_CMDLINE_LINUX_DEFAULT="... cgroup_enable=memory swapaccount=1"

Extlinux

对于 Extlinux,您需要添加 cgroup 条件,但在 /etc/update-extlinux.conf 内部

default_kernel_opts="... cgroup_enable=memory swapaccount=1"

然后更新配置并重启

update-extlinux

如何使用 Docker

请查看 官方文档 以了解有关 Docker 常规用法的详细信息,包括容器的创建和管理。在此处重复这些说明是多余的。

可以在 Docker Hub 上浏览公共镜像。这些也应该作为 Dockerfile 格式的进一步参考。

官方 Docker 镜像文件在网站上用特殊徽章表示。

参见