跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 容器指南 / 设置 Docker 开源引擎
适用范围 SUSE Linux Enterprise Server 15 SP4

5 设置 Docker 开源引擎

5.1 准备主机

请按如下所述准备主机。在安装任何与 Docker 相关的软件包之前,需要启用 Containers 模块

注意
注意:内置 Docker 编制支持

从 Docker Open Source Engine 1.12 开始,容器编制现在是 Docker 开源引擎不可或缺的组成部分。尽管此功能已在 SUSE Linux Enterprise Server 中提供,但 SUSE 并不提供对它的支持,此功能仅作为技术预览提供。使用 Kubernetes 进行容器编制。有关细节,请参见 Kubernetes 文档

过程 5.1︰ 使用图形用户界面 YaST 启用 Containers 模块
  1. 启动 YaST,然后选择软件 › 软件源

  2. 单击添加打开附加产品对话框。

  3. 选择注册服务器上的扩展和模块,然后单击下一步

  4. 在可用扩展和模块列表中,选择 Containers Module 15 SP4 x86_64,然后单击下一步

    Containers 模块及其软件源随即添加到您的系统中。

  5. 如果您使用 Repository Mirroring Tool,请更新 RMT 服务器上的软件源列表。

过程 5.2︰ 使用 SUSEConnect 从命令行启用 Containers 模块
  • 您也可以使用以下命令添加 Containers 模块:

    > sudo SUSEConnect -p sle-module-containers/15.4/x86_64
过程 5.3︰ 安装和设置 Docker 开源引擎
  1. 安装 docker 软件包:

    > sudo zypper install docker
  2. 要在系统引导时自动启动 Docker 服务,请运行以下命令:

    > sudo systemctl enable docker.service

    这也会自动启用 docker.socket

    1. 打开 /etc/sysconfig/docker 文件。搜索参数 DOCKER_OPTS 并添加 --insecure-registry 注册表的地址

    2. 将 CA 证书添加到 /etc/docker/certs.d/REGISTRY_ADDRESS 目录中

      > sudo cp CA /etc/pki/trust/anchors/
    3. 将 CA 证书复制到系统中:

      > sudo update-ca-certificates
  3. 启动 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 中浏览到系统 › /etc/sysconfig 编辑器 › 系统 › 管理 › DOCKER_OPTS 菜单,然后输入 -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 不支持此功能。