随着Fedora 32的发布,Docker的普通用户面临着一个小挑战,在写本文时,Fedora 32不支持Docker,但有其他选择,例如Podman和Buildah,参考安装和使用Buildah构建OCI和Docker容器映像。但对于许多现有用户而言,现在切换并不是最佳时机,因此,本文可以帮助您在Fedora 32上设置Docker环境。
步骤1:消除冲突 此步骤适用于从Fedora 30或31升级的任何用户,如果是Fedora 32的全新安装,则可以继续执行步骤1。 删除docker及其所有相关组件: sudo dnf remove docker-* sudo dnf config-manager --disable docker-*
步骤2:系统准备 操作系统已移至两项新技术:用于防火墙的CGroups和NFTables,尽管这些新技术的详细信息不在本文的讨论范围之内,但令人遗憾的是,Docker还不支持它们,因此,您必须进行一些更改才能在Fedora上使用Docker,参考搜索/下载/构建自定义/删除Docker镜像,运行和删除Docker容器的方法。 1、启用旧的CGroups 仍支持CGroups的先前实现,可以使用以下命令启用它: sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0" 2、将防火墙中的Docker列入白名单 为了允许Docker具有网络访问权限,需要两个命令: sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade 第一个命令将Docker接口添加到受信任的环境,该环境允许Docker建立远程连接,第二个命令将允许docker建立本地连接,当有多个Docker容器作为开发环境时,这特别有用。
步骤3:安装Moby Moby是开源的,它基于相同的代码,但没有商标,它包含在主要的Fedora存储库中,因此易于安装: sudo dnf install moby-engine docker-compose 这将安装moby-engine、docker-compose、containered和其他一些相关的库,安装完成后,您必须启用系统范围的守护程序才能运行docker: sudo systemctl enable docker
步骤4:重新启动并测试 为了确保正确处理所有系统和设置,您现在必须重新启动计算机: sudo systemctl reboot 之后,您可以使用Docker hello-world软件包来验证安装: sudo docker run hello-world 通常情况下,如无出现问题,都能测试通过。
附:以管理员身份运行(可选) 您现在还可以将用户添加到Docker的组帐户中,以便无需输入sudo即可启动Docker映像: sudo groupadd docker sudo usermod -aG docker $USER 注销并登录以使更改生效,同时如果以管理员权限运行容器,请研究一下Podman。
结语 从现在开始,Docker将按照您的习惯工作,包括docker-compose和所有与docker相关的工具。 另外,Fedora 32上Docker的当前状态并不理想,但是以上这些说明应使您可以继续工作。
相关主题 |