当前位置: 首页 > 科技观察

在Fedora32上运行Docker

时间:2023-03-16 16:15:24 科技观察

随着Fedora32的发布,普通的Docker用户面临着一个小挑战。在撰写本文时,Fedora32不支持Docker。虽然还有其他选择,例如Podman和Buildah,但对于许多现有用户而言,现在可能不是切换的最佳时机。因此,本文可以帮助您在Fedora32上搭建Docker环境。第0步:解决冲突此步骤适用于从Fedora30或31升级的任何人。如果您是全新安装的Fedora32,则可以跳至第1步.删除docker及其所有相关组件:sudodnfremovedocker-*sudodnfconfig-manager--disabledocker-*第一步:系统准备在Fedora的最近两个版本中,操作系统已经迁移到两项新技术:CGroups和用于防火墙的NFTables。尽管这些新技术的详细信息超出了本教程的范围,但不幸的是,Docker尚不支持它们。因此,您必须进行一些更改才能在Fedora上使用Docker。启用旧的CGroupsFedora仍然支持以前的CGroups实现,可以使用以下命令启用:sudogrubby--update-kernel=ALL--args="systemd.unified_cgroup_hierarchy=0"防火墙中的白名单Docker以便Docker使用网络访问,需要两个命令:sudofirewall-cmd--permanent--zone=trusted--add-interface=docker0sudofirewall-cmd--permanent--zone=FedoraWorkstation--add-masquerade第一个命令将在可信环境中加入Docker接口,允许Docker建立远程连接。第二个命令将允许Docker建立本地连接。当您有多个Docker容器作为开发环境时,这尤其有用。第2步:安装MobyMoby是Docker的开源白盒版本。它基于相同的代码,但没有品牌。它包含在Fedora的主存储库中,因此很容易安装:sudodnfinstallmoby-enginedocker-compose这将安装moby-engine、docker-compose、containerd和一些其他相关库。安装后,您必须启用系统级守护进程以运行Docker:sudosystemctlenabledocker第3步:重启和测试为确保正确处理所有系统和设置,您现在必须重启您的计算机:sudosystemctlreboot之后,您可以使用Dockerhello-world包来验证安装:sudodockerrunhello-world除非你遇到问题,否则你会看到来自Docker的问候语!以管理员身份运行或者,您现在还可以将用户添加到Docker的组帐户以启动Docker映像而无需键入sudo:sudogroupadddockersudousermod-aGdocker$USER注销并登录以使更改生效。如果以管理员权限运行容器的想法困扰您,那么您应该研究一下Podman。总结从现在开始,Docker将按照您习惯的方式工作,包括docker-compose和所有与docker相关的工具。不要忘记查看官方文档,它可以在很多情况下帮助你。目前Docker在Fedora32上的状态并不理想。缺少官方包可能会困扰一些人,有一个upstreamissue讨论这个。缺乏对CGroups和NFTables的支持更多是一个技术问题,但你可以检查他们在公共问题上的进展。这些说明应该允许您继续工作,就好像什么都没发生过一样。如果这不能满足您的需求,请不要忘记访问Moby或DockerGithub页面来解决您的技术问题,或者看看Podman,从长远来看它可能更强大。