在 Linux 上安装 Docker Desktop
Docker Desktop 条款
在大型企业(拥有超过 250 名员工或年收入超过 1000 万美元)中商业使用 Docker Desktop 需要付费订阅。
本页面包含有关一般系统要求、支持的平台以及如何在 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 容器的核心技术。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 Contexts 允许您在 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 | ✅ |
| 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 内存。
- 启用在用户命名空间中配置 ID 映射,请参阅文件共享。请注意,对于 Docker Desktop 4.35 及更高版本,这已不再需要。
- 推荐:初始化
pass用于凭证管理。
Linux 版 Docker Desktop 运行一个虚拟机 (VM)。有关原因的更多信息,请参阅为什么 Linux 版 Docker Desktop 运行 VM。
注意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 for Linux