在 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
软件包:
平台 | 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 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
退出并重新登录,以便重新评估你的组成员资格。
下一步
- 为你的特定 Linux 分发版安装 Linux 版 Docker Desktop