在 Fedora 32 上運行 Docker
隨著 Fedora 32 的發布,Docker 的普通用戶面臨著一個小挑戰。在編寫本文時,Fedora 32 不支持 Docker。雖然還有其他選擇,例如 Podman 和 Buildah,但是對於許多現有用戶而言,現在切換可能不是最佳時機。因此,本文可以幫助你在 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 的問候!
以管理員身份運行
可選地,你現在還可以將用戶添加到 Docker 的組帳戶中,以便無需輸入 sudo
即可啟動 Docker 鏡像:
sudo groupadd docker
sudo usermod -aG docker $USER
註銷並登錄以使更改生效。如果以管理員許可權運行容器的想法讓你有所顧慮,那麼你應該研究 Podman。
總結
從現在起,Docker 將按照你的習慣工作,包括 docker-compose
和所有與 docker
相關的工具。不要忘記查看官方文檔,這在很多情況下可以為你提供幫助。
Fedora 32 上 Docker 的當前狀態並不理想。缺少官方軟體包可能會困擾一些人,有一個上游問題對此進行了討論。對 CGroups 和 NFTables 缺少支持更多是技術問題,但是你可以查看它們在其公共問題上的進展。
這些指導應可以讓你就像什麼都沒有發生一樣繼續工作。如果這不能滿足你的需求,請不要忘記到 Moby 或 Docker Github 頁面去尋求解決你的技術問題,或者看看 Podman,長期來看,它可能會更加強大。
via: https://fedoramagazine.org/docker-and-fedora-32/
作者:Kevin "Eonfge" Degeling 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive