在 Linux 上安裝 Docker Desktop

Docker Desktop 條款

在大型企業(擁有超過 250 名員工或年收入超過 1000 萬美元)中商業使用 Docker Desktop 需要付費訂閱

本頁面包含有關一般系統要求、支援的平臺以及如何在 Linux 上安裝 Docker Desktop 的說明。

重要提示

Linux 上的 Docker Desktop 在啟動時執行一個虛擬機器 (VM),該虛擬機器建立並使用一個自定義的 Docker 上下文 desktop-linux

這意味著在 Linux Docker Engine(安裝前)上部署的映象和容器在 Linux 版 Docker Desktop 中不可用。

重要提示

對於大型企業(員工超過 250 人或年收入超過 1000 萬美元)透過 Docker Desktop 獲取的 Docker Engine 進行商業用途,需要付費訂閱

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 將容器和映象儲存在 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”上下文以與 Docker Desktop 互動。啟動時,Docker Desktop 會自動將其自己的上下文(desktop-linux)設定為當前上下文。這意味著後續的 Docker CLI 命令將指向 Docker Desktop。關閉時,Docker Desktop 會將當前上下文重置為 default 上下文。

使用 docker context ls 命令檢視機器上可用的上下文。當前上下文用星號 (*) 表示。

$ 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 上下文之間切換。例如,使用“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 軟體包

為基於 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 記憶體。
  • 啟用在使用者名稱空間中配置 ID 對映,請參閱檔案共享。請注意,對於 Docker Desktop 4.35 及更高版本,這已不再需要。
  • 推薦:初始化 pass 用於憑證管理。

Linux 版 Docker Desktop 執行一個虛擬機器 (VM)。有關原因的更多資訊,請參閱為什麼 Linux 版 Docker Desktop 執行 VM

注意

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

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

接下來去哪裡