在 Linux 上安裝 Docker Desktop
Docker Desktop 條款
在大型企業中商業使用 Docker Desktop (員工數超過 250 人或年收入超過 1000 萬美元) 需要付費訂閱。
本頁包含有關一般系統需求、支援的平台,以及如何在 Linux 上安裝 Docker Desktop 的說明。
重要Linux 上的 Docker Desktop 執行一個虛擬機器 (VM),該虛擬機器在啟動時會建立並使用一個自訂的 Docker 內容 (context),即
desktop-linux。這表示在 Linux Docker Engine 上部署的映像檔和容器 (在安裝前) 在 Linux 版 Docker Desktop 中不可用。
重要對於大型企業中透過 Docker Desktop 取得的 Docker Engine 之商業用途 (員工數超過 250 人或年收入超過 1000 萬美元),則需要付費訂閱。
Linux 版 Docker Desktop 提供了一個使用者友善的圖形介面,簡化了容器和服務的管理。它包含了 Docker Engine,因為這是驅動 Docker 容器的核心技術。Linux 版 Docker Desktop 也附帶了其他功能,例如 Docker Scout 和 Docker Extensions。
安裝 Docker Desktop 與 Docker Engine
Linux 版 Docker Desktop 和 Docker Engine 可以在同一台機器上並行安裝。Linux 版 Docker Desktop 將容器和映像檔儲存在虛擬機器內的一個獨立儲存位置,並提供控制以限制其資源。為 Docker Desktop 使用專用的儲存位置可防止它與同一台機器上的 Docker Engine 安裝互相干擾。
雖然可以同時執行 Docker Desktop 和 Docker Engine,但有時同時執行兩者可能會導致問題。例如,當為容器映射網路連接埠 (
-p/--publish) 時,Docker Desktop 和 Docker Engine 都可能嘗試在您的機器上保留相同的連接埠,這可能導致衝突 (例如:「連接埠已被使用」)。我們通常建議在使用 Docker Desktop 時停止 Docker Engine,以防止 Docker Engine 消耗資源並避免上述的衝突。
使用以下指令停止 Docker Engine 服務
$ sudo systemctl stop docker docker.socket containerd根據您的安裝方式,Docker Engine 可能被配置為在機器啟動時自動作為系統服務啟動。使用以下指令禁用 Docker Engine 服務,並防止它自動啟動
$ sudo systemctl disable docker docker.socket containerd在 Docker Desktop 和 Docker Engine 之間切換
Docker CLI 可用於與多個 Docker Engine 互動。例如,您可以使用相同的 Docker CLI 來控制本機 Docker Engine 和控制在雲端執行的遠端 Docker Engine 實例。Docker Contexts 允許您在不同的 Docker Engine 實例之間切換。
安裝 Docker Desktop 時,會建立一個專用的 "desktop-linux" 內容 (context) 以與 Docker Desktop 互動。啟動時,Docker Desktop 會自動將其自身的內容 (
desktop-linux) 設定為目前內容。這表示後續的 Docker CLI 指令將會針對 Docker Desktop。關機時,Docker Desktop 會將目前內容重設為default內容。使用
docker context ls指令可以查看您的機器上有哪些可用的內容 (context)。目前內容會以星號 (*) 表示。$ docker context ls NAME DESCRIPTION DOCKER ENDPOINT ... default * Current DOCKER_HOST based configuration unix:///var/run/docker.sock ... desktop-linux unix:///home/<user>/.docker/desktop/docker.sock ...如果您在同一台機器上同時安裝了 Docker Desktop 和 Docker Engine,您可以執行
docker context use指令來切換 Docker Desktop 和 Docker Engine 的內容 (context)。例如,使用 "default" 內容來與 Docker Engine 互動$ docker context use default default Current context is now "default"並使用
desktop-linux內容來與 Docker Desktop 互動$ docker context use desktop-linux desktop-linux Current context is now "desktop-linux"請參閱Docker Context 文件以獲取更多詳細資訊。
支援的平台
Docker 為以下 Linux 發行版和架構提供了 .deb 和 .rpm 套件
| 平台 | x86_64 / amd64 |
|---|---|
| Ubuntu | ✅ |
| Debian | ✅ |
| Red Hat Enterprise Linux (RHEL) | ✅ |
| Fedora | ✅ |
Arch 系列發行版提供了實驗性套件。Docker 尚未測試或驗證此安裝。
Docker 支援上述發行版的目前 LTS 版本和最新版本上的 Docker Desktop。隨著新版本的推出,Docker 將停止支援最舊的版本並支援最新版本。
一般系統需求
要成功安裝 Docker Desktop,您的 Linux 主機必須符合以下一般要求
- 64 位元核心以及 CPU 支援虛擬化。
- KVM 虛擬化支援。請按照KVM 虛擬化支援說明,檢查 KVM 核心模組是否已啟用以及如何提供 KVM 裝置的存取權限。
- QEMU 必須是 5.2 版或更高版本。我們建議升級到最新版本。
- systemd 初始化系統。
- GNOME、KDE 或 MATE 桌面環境。
- 對於許多 Linux 發行版,GNOME 環境不支援系統匣圖示。要新增系統匣圖示支援,您需要安裝 GNOME 擴充功能。例如,AppIndicator。
- 至少 4 GB 的 RAM。
- 啟用在使用者命名空間中設定 ID 映射,請參閱檔案共享。請注意,對於 Docker Desktop 4.35 版及更高版本,這已不再需要。
- 建議:初始化
pass以進行憑證管理。
Linux 版 Docker Desktop 執行一個虛擬機器 (VM)。有關原因的更多資訊,請參閱為何 Linux 版 Docker Desktop 會執行虛擬機器。
注意Docker 不支援在巢狀虛擬化情境下執行 Linux 版 Docker Desktop。我們建議您在支援的發行版上原生執行 Linux 版 Docker Desktop。
KVM 虛擬化支援
Docker Desktop 執行一個需要 KVM 支援的 VM。
如果主機支援虛擬化,kvm 模組應會自動載入。若要手動載入模組,請執行
$ modprobe kvm
根據主機機器的處理器,必須載入相應的模組
$ modprobe kvm_intel # Intel processors
$ modprobe kvm_amd # AMD processors
如果上述指令失敗,您可以透過執行以下指令查看診斷資訊
$ kvm-ok
若要檢查 KVM 模組是否已啟用,請執行
$ lsmod | grep kvm
kvm_amd 167936 0
ccp 126976 1 kvm_amd
kvm 1089536 1 kvm_amd
irqbypass 16384 1 kvm
設定 KVM 裝置使用者權限
若要檢查 /dev/kvm 的所有權,請執行
$ ls -al /dev/kvm
將您的使用者新增到 kvm 群組,以便存取 kvm 裝置
$ sudo usermod -aG kvm $USER
登出並重新登入,以便重新評估您的群組成員資格。
接下來怎麼做
- 為您特定的 Linux 發行版安裝 Linux 版 Docker Desktop