在 Linux 上安装 Docker Desktop

Docker Desktop 条款

在大型企业中(员工人数超过 250 人或年收入超过 1000 万美元)的商业用途需要 付费订阅.

此页面包含有关一般系统要求、支持的平台以及有关如何在 Linux 上安装 Docker Desktop 的说明。

重要提示

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

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

有关更多信息,请参阅 Linux 上的 Docker Desktop 与 Docker Engine 之间的区别.

重要提示

对于在大型企业(员工人数超过 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 上下文 允许您在 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 软件包

平台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 映射,请参阅 文件共享
  • 推荐: 初始化 pass 以进行凭据管理。

Linux 上的 Docker Desktop 运行一个虚拟机 (VM)。有关原因的更多信息,请参阅 为什么 Linux 上的 Docker Desktop 运行一个 VM

注意

Docker 不提供对在嵌套虚拟化场景中运行 Linux 上的 Docker Desktop 的支持。我们建议您在支持的发行版上以原生方式运行 Linux 上的 Docker Desktop。

KVM 虚拟化支持

Docker Desktop 运行一个 VM,需要 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

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

通用安装步骤

重要提示

确保您满足前面概述的系统要求,并遵循发行版特定的先决条件。

  1. 下载适合您的 Linux 发行版的正确软件包,并使用相应的包管理器进行安装。

  2. 在 Gnome/KDE 桌面中打开您的 **应用程序** 菜单,并搜索 **Docker Desktop**。

    Docker app in Applications
  3. 选择 **Docker Desktop** 以启动 Docker。
    Docker 菜单( whale menu )显示 Docker 订阅服务协议。

  4. 选择 **接受** 以继续。接受条款后,Docker Desktop 将启动。

    请注意,如果您不同意条款,Docker Desktop 将无法运行。您可以在稍后打开 Docker Desktop 接受条款。

    有关更多信息,请参阅 Docker Desktop 订阅服务协议。我们建议您还阅读 常见问题解答

下一步去哪里