在 Linux 上安装 Docker Desktop

Docker Desktop 术语

Docker Desktop 在大型企业中的商业用途(超过 250 个 员工或超过 1000 万美元的年收入)需要支付 订阅

本页包含有关一般系统要求、支持的平台的信息,以及有关如何安装适用于 Linux 的 Docker Desktop 的说明。

重要

Linux 上的 Docker Desktop 运行虚拟机 (VM),该虚拟机在启动时创建并使用自定义 Docker 上下文 。desktop-linux

这意味着部署在 Linux Docker Engine 上的镜像和容器(安装前)在适用于 Linux 的 Docker Desktop 中不可用。

重要

要在大型企业(超过 250 名员工或年收入超过 1000 万美元)中通过 Docker Desktop 获得 Docker Engine 的商业用途,需要付费订阅

Docker Desktop for Linux 提供用户友好的图形界面,可简化容器和服务的管理。它包括 Docker Engine,因为这是为 Docker 容器提供支持的核心技术。适用于 Linux 的 Docker Desktop 还附带了 Docker Scout 和 Docker Extensions 等附加功能。

安装 Docker Desktop 和 Docker Engine

适用于 Linux 的 Docker Desktop 和 Docker Engine 可以并排安装在 同一台机器。Docker Desktop for Linux 将容器和镜像存储在隔离的 VM 中的存储位置和产品/服务 控件来限制其资源。使用专用存储 位置可防止其干扰 Docker 引擎 安装在同一台计算机上。

虽然可以同时运行 Docker Desktop 和 Docker Engine, 在某些情况下,同时运行两者可能会导致问题。 例如,在为容器映射网络端口 ( / ) 时,两者 Docker Desktop 和 Docker Engine 可能会尝试在您的 machine,这可能会导致冲突(“port already in use”)。-p--publish

我们通常建议在使用 Docker Desktop 时停止 Docker Engine 防止 Docker Engine 消耗资源并防止冲突 如上所述。

使用以下命令停止 Docker Engine 服务:

$ sudo systemctl stop docker docker.socket containerd

根据您的安装,Docker 引擎可能配置为自动 在计算机启动时作为系统服务启动。使用以下命令 禁用 Docker Engine 服务,并防止其自动启动:

$ sudo systemctl disable docker docker.socket containerd

在 Docker Desktop 和 Docker Engine 之间切换

Docker CLI 可用于与多个 Docker 引擎交互。例如 您可以使用相同的 Docker CLI 来控制本地 Docker 引擎并控制 在云中运行的远程 Docker Engine 实例。Docker 上下文允许您在 Docker 引擎实例之间切换。

安装 Docker Desktop 时,会创建一个专用的 “desktop-linux” 上下文,以 与 Docker Desktop 交互。启动时,Docker Desktop 会自动将其 own context () 作为当前上下文。这意味着后续的 Docker CLI 命令以 Docker Desktop 为目标。关闭时,Docker Desktop 会重置 将 current context 设置为 context。desktop-linuxdefault

使用该命令可查看 机器。当前上下文用星号 (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 Desktop 之间切换 和 Docker Engine 上下文。例如,使用 “default” 上下文进行交互 使用 Docker 引擎:docker context use

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

并使用上下文与 Docker Desktop 交互:desktop-linux

$ 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 init 系统。
  • Gnome、KDE 或 MATE 桌面环境。
    • 对于许多 Linux 发行版,Gnome 环境不支持托盘图标。要添加对托盘图标的支持,您需要安装 Gnome 扩展。例如,AppIndicator
  • 至少 4 GB 的 RAM。
  • 允许在用户命名空间中配置 ID 映射,请参阅文件共享。请注意,对于 Docker Desktop 版本 4.35 及更高版本,不再需要这样做。
  • 建议:初始化凭据管理的通道

适用于 Linux 的 Docker Desktop 运行虚拟机 (VM)。有关原因的更多信息,请参阅适用于 Linux 的 Docker Desktop 为何运行 VM

注意

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

注销并重新登录,以便重新评估您的群组成员资格。

下一步