TranslateProject/translated/tech/20200626 Docker and Fedora 32.md
2020-07-13 08:42:18 +08:00

4.6 KiB
Raw Blame History

Docker 和 Fedora 32

随着 Fedora 32 的发布,Docker 的普通用户面临着一个小挑战。在编写本文时Fedora 32 不支持 Docker。还有其他选择例如 PodmanBuildah,但是对于许多现有用户而言,现在切换可能不是最佳时机。因此,本文可以帮助你在 Fedora 32 上设置 Docker 环境。

步骤 0消除冲突

此步骤适用于从 Fedora 30 或 31 升级的任何用户。如果全新安装的 Fedora 32那么可以跳到步骤 1。

删除 docker 及其所有相关组件:

sudo dnf remove docker-*
sudo dnf config-manager --disable docker-*

步骤 1系统准备

在 Fedora 的最后两个版本中,操作系统已迁移到两项新技术:用于防火墙的 CGroups 和 NFTables。尽管这些新技术的详细信息不在本教程的讨论范围之内但是令人遗憾的是Docker 还不支持这些新技术。因此,你必须进行一些更改才能在 Fedora 上使用 Docker。

启用旧的 CGroups

Fedora 仍然支持 CGroups 的先前实现,可以使用以下命令启用它。

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

将防火墙中的 Docker 列入白名单

为了让 Docker 具有网络访问权限,需要两个命令。

sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade

第一个命令将 Docker 接口添加到受信任的环境,它允许 Docker 建立远程连接。第二个命令将允许 docker 建立本地连接。当有多个 Docker 容器作为开发环境时,这特别有用。

步骤 2安装 Moby

Moby 是 Docker 的开源白标版本。它基于相同的代码,但没有商标。它包含在 Fedora 的主仓库中,因此很容易安装。

sudo dnf install moby-engine docker-compose

这将安装 moby-engine docker-compose containerd 和其他一些相关的库。安装完成后,你必须启用系统级守护程序才能运行 docker。

sudo systemctl enable docker

步骤 3重新启动并测试

为了确保正确处理所有系统和设置,你现在必须重启计算机。

sudo systemctl reboot

之后,你可以使用 Docker hello-world 包来验证安装。

sudo docker run hello-world

除非遇到问题,不然你就会看到来自 Docker 的 Hello 问候!

以管理员身份运行

可选地,你现在还可以将用户添加到 Docker 的组帐户中,以便无需输入 sudo 即可启动 Docker 镜像。

sudo groupadd docker
sudo usermod -aG docker $USER

注销并登录以使更改生效。如果以管理员权限运行容器的想法让你顾虑,那么你应该研究 Podman。

总结

从现在起Docker 将按照你的习惯工作,包括 docker-compose 和所有与 docker 相关的工具。不要忘记查看官方文档,这在很多情况下可以为你提供帮助。

Fedora 32 上 Docker 的当前状态并不理想。缺少官方软件包可能会困扰一些人,并且有一个上游问题对此进行了讨论。对 CGroupsNFTables 都缺少支持更多是技术问题,但是你可以查看它们在其公共问题上的进展。

这些指导应可以让你就像什么都没有发生一样继续工作。如果这不能满足你的需求,请不要忘记到 Moby 或 Docker Github 页面去解决你的技术问题,或者看看 Podman长期它可能会更加强大。


via: https://fedoramagazine.org/docker-and-fedora-32/

作者:Kevin "Eonfge" Degeling 选题:lujun9972 译者:geekpi 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出