5 设置 Docker 开源引擎 #
5.1 准备主机 #
请按如下所述准备主机。在安装任何与 Docker 相关的软件包之前,需要启用 Containers 模块
:
从 Docker Open Source Engine 1.12 开始,容器编制现在是 Docker 开源引擎不可或缺的组成部分。尽管此功能已在 SUSE Linux Enterprise Server 中提供,但 SUSE 并不提供对它的支持,此功能仅作为技术预览提供。使用 Kubernetes 进行容器编制。有关细节,请参见 Kubernetes 文档。
启动 YaST,然后选择
› 。单击
打开附加产品对话框。选择
,然后单击 。在可用扩展和模块列表中,选择
,然后单击 。Containers 模块及其软件源随即添加到您的系统中。
如果您使用 Repository Mirroring Tool,请更新 RMT 服务器上的软件源列表。
您也可以使用以下命令添加 Containers 模块:
>
sudo
SUSEConnect -p sle-module-containers/15.4/x86_64
安装
docker
软件包:>
sudo
zypper install docker要在系统引导时自动启动 Docker 服务,请运行以下命令:
>
sudo
systemctl enable docker.service这也会自动启用
docker.socket
。打开
/etc/sysconfig/docker
文件。搜索参数 DOCKER_OPTS 并添加--insecure-registry 注册表的地址
。将 CA 证书添加到
/etc/docker/certs.d/REGISTRY_ADDRESS
目录中>
sudo
cp CA /etc/pki/trust/anchors/将 CA 证书复制到系统中:
>
sudo
update-ca-certificates
启动 Docker 服务:
>
sudo
systemctl start docker.service这会自动启动
docker.socket
。
Docker 守护程序将会侦听仅可供 root
用户以及 docker
组成员访问的本地套接字。docker
组是在安装软件包期间自动创建的。
要允许特定用户连接到本地 Docker 守护程序,请使用以下命令:
>
sudo
/usr/sbin/usermod -aG docker USERNAME
这会允许该用户与本地 Docker 守护程序通讯。
5.2 配置网络 #
要使容器能够访问外部网络,请启用 ipv4 ip_forward
规则。
5.2.1 Docker 开源引擎与 iptables
交互的方式 #
要了解有关容器如何相互交互以及如何与系统防火墙交互的详细信息,请参见 Docker 文档。
您也可以彻底阻止 Docker 开源引擎操作 iptables
。请参见 Docker 文档。
5.3 储存驱动程序 #
Docker 开源引擎支持不同的储存驱动程序:
vfs
:如果 Docker 主机文件系统不支持写入时复制,将自动使用此驱动程序。此驱动程序比其他所列驱动程序更简单,未利用 Docker 开源引擎的某些优势,例如共享层。此驱动程序很可靠,但速度较慢。devicemapper
:此驱动程序依赖于 device-mapper 精简供应模块。它支持写入时复制,因此可以利用 Docker 开源引擎的所有优势。btrfs
:此驱动程序依赖于 Btrfs 来提供 Docker 开源引擎所需的所有功能。要使用此驱动程序,/var/lib/docker
目录必须位于 Btrfs 文件系统上。
从 SUSE Linux Enterprise Server 12 开始,默认会使用 Btrfs 文件系统,这会强制 Docker 开源引擎使用 btrfs
驱动程序。
可以通过更改 /etc/sysconfig/docker
文件中定义的 DOCKER_OPTS
变量值来指定要使用的驱动程序。可以手动进行这种更改,也可以在 YaST 中浏览到 › › › › 菜单,然后输入 -s storage_driver
字符串进行更改。
例如,要强制使用 devicemapper
驱动程序,请输入以下文本:
DOCKER_OPTS="-s devicemapper"
/var/lib/docker
建议在单独的分区或卷上挂载 /var/lib/docker
。这样,当文件系统损坏时,运行 Docker 开源引擎的操作系统将不受影响。
如果您为 /var/lib/docker
选择了 Btrfs 文件系统,强烈建议为其创建一个子卷。这可以确保从文件系统快照中排除该目录。如果不从快照中排除 /var/lib/docker
,当您开始部署容器后,文件系统可能很快就会耗尽磁盘空间。此外,回滚到以前的快照也会重设置 Docker 数据库和映像。有关详细信息,请参见第 10.1.4.3 节 “创建和挂载新子卷”。
5.4 更新 #
对 docker 软件包进行的所有更新都会标记为“交互式”(即,不是自动更新),以避免意外的更新破坏正在运行的容器工作负载。一般而言,我们建议在对 Docker 开源引擎应用更新之前停止所有正在运行的容器。
为避免数据丢失,我们不建议让工作负载依赖于容器在 Docker 开源引擎更新后保持可启动状态。尽管从技术上讲可以通过 --live-restore
选项使容器能够在更新期间保持运行,但经验表明,这种更新可能会导致性能下降。SUSE 不支持此功能。