在 Linux 上安装 Docker Desktop

Docker Desktop 条款

大型企业(拥有 250 名以上员工或年收入超过 1000 万美元)对通过 Docker Desktop 获取的 Docker Engine 进行商业使用需要付费订阅

本页包含有关一般系统要求、支持的平台以及如何在 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 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 上下文允许你在 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 上下文文档

支持的平台

Docker 为以下 Linux 分发版和架构提供 .deb.rpm 软件包:

Arch 及其派生版本提供了一个实验性软件包。Docker 尚未测试或验证此安装。

Docker 支持在上述分发版的当前 LTS 版本和最新版本上运行 Docker Desktop。随着新版本的发布,Docker 将停止支持最旧版本,并支持最新版本。

一般系统要求

要成功安装 Docker Desktop,你的 Linux 主机必须满足以下一般要求:

  • 64 位内核和支持虚拟化的 CPU。
  • KVM 虚拟化支持。按照KVM 虚拟化支持说明检查 KVM 内核模块是否已启用以及如何提供对 KVM 设备的访问。
  • QEMU 必须是 5.2 或更高版本。我们建议升级到最新版本。
  • systemd init 系统。
  • GNOME, KDE 或 MATE 桌面环境。
    • 对于许多 Linux 分发版,GNOME 环境不支持托盘图标。要添加对托盘图标的支持,你需要安装一个 GNOME 扩展。例如,AppIndicator
  • 至少 4 GB 内存。
  • 在用户命名空间中启用 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

退出并重新登录,以便重新评估你的组成员资格。

下一步

页面选项