在 Linux 上安裝 Docker Desktop

Docker Desktop 條款

較大企業(超過 250 名員工或年收入超過 1,000 萬美元)商業使用 Docker Desktop 需要付費訂閱

重要

適用於 Linux 的 Docker Desktop 會執行虛擬機器 (VM),該虛擬機器會在啟動時建立並使用自訂 docker context,即 `desktop-linux`。

這表示部署在 Linux Docker Engine 上的映像檔和容器(安裝前)在適用於 Linux 的 Docker Desktop 中無法使用。

重要

若大型企業(員工超過 250 人或年收入超過 1,000 萬美元)在商業用途上使用透過 Docker Desktop 取得的 Docker Engine,則需要付費訂閱安裝 Docker Desktop 和 Docker Engine

適用於 Linux 的 Docker Desktop 和 Docker Engine 可以並排安裝在同一台機器上。適用於 Linux 的 Docker Desktop 會將容器和映像檔儲存在 VM 內的隔離儲存位置,並提供控制項來限制其資源。將專用儲存位置用於 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 會自動將其 context ( `desktop-linux` ) 設定為目前的 context。這表示後續的 Docker CLI 指令會以 Docker Desktop 為目標。關閉時,Docker Desktop 會將目前的 context 重設為 `default` context。

使用 `docker context ls` 指令來檢視機器上可用的 context。目前的 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」context 與 Docker Engine 互動

$ docker context use default
default
Current context is now "default"

並使用 `desktop-linux` context 與 Docker Desktop 互動

$ docker context use desktop-linux
desktop-linux
Current context is now "desktop-linux"

請參閱Docker Context 文件以取得更多詳細資訊。

支援的平台

Docker 提供下列 Linux 發行版本和架構的 `.deb` 和 `.rpm` 套件

適用於 Arch 系統的實驗性套件已可供使用。Docker 尚未測試或驗證此安裝。

Docker 支援 Docker Desktop 在上述發行版的最新長期支援版本 (LTS) 和最新版本上運行。隨著新版本的發布,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 支援 的虛擬機。

如果主機支援虛擬化,則 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

登出並重新登入,以便重新評估您的群組成員資格。

後續步驟