在 Linux 上安装 Docker Desktop
Docker Desktop 条款
在大型企业(员工人数超过 250 人或年营收超过 1000 万美元)中将 Docker Desktop 用于商业用途,需要 付费订阅。
本页面包含有关通用系统要求、支持的平台以及如何为 Linux 安装 Docker Desktop 的说明。
重要
Linux 上的 Docker Desktop 会运行一个虚拟机 (VM),该虚拟机在启动时创建并使用一个自定义的 Docker 上下文
desktop-linux。这意味着在 Linux Docker Engine(安装前)上部署的镜像和容器在 Docker Desktop for Linux 中不可用。
重要
对于在大型企业(员工超过 250 人或年收入超过 1000 万美元)中通过 Docker Desktop 获取的 Docker Engine 进行商业使用,需要 付费订阅。
Docker Desktop for Linux 提供了一个用户友好的图形界面,简化了容器和服务的管理。它包含了 Docker Engine,这是驱动 Docker 容器的核心技术。Docker Desktop for Linux 还附带了其他功能,如 Docker Scout 和 Docker Extensions。
安装 Docker Desktop 和 Docker Engine
Docker Desktop for Linux 和 Docker Engine 可以并排安装在同一台机器上。Docker Desktop for Linux 将容器和镜像存储在虚拟机内的隔离存储位置,并提供 控制措施以限制 其资源。为 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 Context 文档。
支持的平台
Docker 为以下 Linux 发行版和架构提供 .deb 和 .rpm 软件包:
| 平台 | x86_64 / amd64 |
|---|---|
| Ubuntu | ✅ |
| Debian | ✅ |
| 红帽企业版 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 内存。
- 启用用户命名空间中的 ID 映射配置,请参阅 文件共享。请注意,对于 Docker Desktop 4.35 及更高版本,不再需要此操作。
- 推荐:
初始化
pass以进行凭据管理。
Docker Desktop for Linux 运行一个虚拟机 (VM)。有关原因的更多信息,请参阅 为什么 Docker Desktop for Linux 要运行虚拟机。
注意
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 发行版安装 Docker Desktop: