在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扩展。

安装Docker Desktop和Docker Engine

Docker Desktop for Linux和Docker Engine可以并排安装在同一台机器上。Docker Desktop for Linux将容器和镜像存储在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软件包

针对基于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不支持在嵌套虚拟化场景中运行Docker Desktop for Linux。我们建议您在受支持的发行版上原生运行Docker Desktop for Linux。

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

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

下一步去哪里