Docker Engine
和 Docker Desktop
是 Docker 生态系统中两个不同的概念,它们在用途和适用场景上有一些区别。
(1) Docker Engine:
Docker Engine 是一种开源的容器运行时技术,用于构建和容器化应用程序。它使得开发者能够将应用程序和其依赖项打包成容器,以确保在不同环境中的一致性运行。Docker Engine 包括:
dockerd
,该守护进程负责管理和执行容器的创建、运行和停止等操作。Docker Engine 通常用于服务器环境,例如在云服务器、虚拟机或物理服务器上运行。它提供了创建和运行容器的基本功能,支持容器编排工具(如 Docker Compose 和 Kubernetes)来管理多个容器。
(2) Docker Desktop:
Docker Desktop是适用于Mac、Linux或Windows环境的一键安装应用程序,可让您构建、共享和运行容器化应用程序和微服务。它在桌面操作系统上提供了用户友好的界面和集成开发环境。
它包含了一个完整的 Docker 环境,包括 Docker Engine、CLI 工具、Docker Compose 等。Docker Desktop 提供了一个方便的方式,让开发者能够在本地构建、测试和运行容器化应用。
总结:
Docker Engine
是 Docker 运行时的核心组件,主要用于在服务器环境中运行容器。Docker Desktop
是一个桌面应用程序,包含 Docker Engine,并提供了一个本地开发环境,方便开发者在本地计算机上使用 Docker。值得注意的是,我们要查看一下 系统要求。
在 Docker for Windows 中,有2种不同的后端(backend)选项,分别是WSL 2 backend、Hyper-V backend and Windows containers。它们之间的主要区别在于底层技术和使用场景:
建议直接选择软件的推荐方式:
在windows系统,安装教程主要为:
安装完成后,添加的应用的如下
同时,我们可以看到,CPU虚拟化已启动
查看安装的 docker 和 wsl 版本
C:\Users\zouhu>docker -v
Docker version 24.0.7, build afdd53b
C:\Users\zouhu>wsl -v
WSL 版本: 2.0.14.0
内核版本: 5.15.133.1-1
WSLg 版本: 1.0.59
MSRDC 版本: 1.2.4677
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.19045.3803
在 Docker 软件中,WSL 扮演着重要的角色。如果后续 WSL 软件出现了问题,会导致 Docker Desktop 出现下面的错误
解决方案:
(1) 打开Windows功能中的 适用于Linux的Windows子系统
这一windows功能
Docker Desktop运行需要 KVM support
如果主机支持虚拟化,则kvm模块应自动加载。否则,要手动加载模块,请运行:
modprobe kvm
根据主机的处理器,必须加载相应的模块:
sudo modprobe kvm_intel # Intel processors
sudo modprobe kvm_amd # AMD processors
检查是否启用了KVM模块,请运行:
kvm-ok
如果没有安装 KVM ,打开Docker软件的时候,系统会报下图中所示的错误
如果要在虚拟机上面启动 KVM, 需要确保虚拟机设置里面开启了虚拟化引擎。
但是,启动虚拟机后可能会遇到下图中的错误
解决方案:
(1)打开 Windows安全中心>设备安全性>内核隔离
, 关闭 内核隔离
(2)如果是在 Windows 上装了 wsl ,还要禁用Windows功能中的 适用于Linux的Windows子系统
这一 windows功能。 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。
糟糕的是,Windows 上可能就无法使用 Docker Desktop
根据Linux发行版, 在官网下载正确的包,并使用相应的包管理器安装
sudo apt-get update
sudo apt-get install ./docker-desktop-<version>-<arch>.deb
安装完成后,重启电脑即可