Windows Docker 安装

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。 Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。 因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。 在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

Docker for Windows, WSL2 ,Hyper-v 的关系

Hyper-v

  • Hyper-V 是由微软开发的一种虚拟化技术和虚拟机管理器。它允许在 Windows 操作系统上创建和运行多个虚拟机实例,每个虚拟机可以运行独立的操作系统和应用程序。
  • 属于硬件虚拟化。

WSL2

  • WSL2 在技术上与 WSL 有很大的不同。在 WSL2 中,Windows 10 引入了虚拟化技术,利用了 Hyper-V 虚拟机来运行一个完整的 Linux 内核。这意味着 WSL2 不再是简单的 Linux 系统调用翻译,而是在 Windows 系统上运行了一个真正的 Linux 内核。WSL1 没有 Linux 内核。
  • WSL2(Windows Subsystem for Linux 2)中包含了 Hyper-V 虚拟化技术(即无需额外安装 Hyper-V,这是为什么我的电脑是 windows10 家庭版,没有 Hyper-V 功能,也能使用 WSL2 的原因)。

Docker for Windows

Docker for Windows 是一种用于在 Windows 操作系统上运行 Docker 容器的工具。它允许将应用程序及其所有依赖项打包在一个独立的容器中,然后在任何支持 Docker 的环境中运行。容器是一种轻量级的虚拟化技术,使得应用程序可以在一个隔离的环境中运行,同时与主机系统相互隔离。

Docker for Windows 提供了以下主要功能:

  1. Docker 引擎:Docker for Windows 包含了 Docker 引擎,这是 Docker 平台的核心组件,负责构建、运行和管理容器。
  2. 容器管理:Docker for Windows 提供了一个用户友好的图形界面,以及命令行工具,用于管理容器、镜像和其他 Docker 资源。
  3. Windows 和 Linux 混合支持:Docker for Windows 允许在 Windows 主机上同时运行 Windows 容器和 Linux 容器,使得开发人员可以轻松地构建和测试跨平台的应用程序。
  4. 与 Windows 集成:Docker for Windows 与 Windows 操作系统紧密集成,可以与本地 Windows 文件系统、网络和其他 Windows 资源无缝交互。

三者关系

  • docker for Windows 不能独立存在,需要有一个运行环境。
  • docker for Windows+WSL2 或者 docker for Windows+Hyper-v 都可以。
  • 当然也可以直接在 WSL2 的 Linux 操作系统中直接安装 docker,但这样就不方便和 IDEA 等开发工具联合使用。

Win11 系统

Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。 Docker Desktop 官方下载地址: [https://docs.docker.com/desktop/install/windows-install/](https://docs.docker.com/desktop/install/windows-install/) **注意:**此方法目前无咎只验证了 Win11 专业版系统。

启用 Windows 功能

打开控制面板-程序-程序与功能-启用或关闭 Windows 功能

勾选打开功能 Windows 功能

  1. Hyper-V
  2. Windows 虚拟机监控程序平台
  3. 适用于 Linux 的 Windows 子系统
勾选完成后,Windows11 会自己下载些东西,并提示你重启。等电脑彻底重启完以后,进行后续操作。

打开 Power Shell 以管理员命令输入下方代码:

1
bcdedit /set hypervisorlaunchtype auto

安装 Docker Desktop for Windows

官网下载速度感人,无咎特提供了网盘下载地址。

>

运行安装文件

启动 Docker

安装完成后,Docker 会自动启动。通知栏上会出现这个图标,这表示 Docker 正在运行。

我们可以在命令行执行 docker -v 来查看 Docker 版本号,docker compose version 来查看 Docker Compose 版本号。

1
2
3
4
PS C:\Users\khalid> docker -v
Docker version 26.0.0, build 2ae903e
PS C:\Users\khalid> docker compose version
Docker Compose version v2.26.1-desktop.1

如果没启动,你可以在 Windows 搜索 Docker 来启动:

配置国内镜像加速

接下来有一件事儿是必须要做的,那就是设置国内镜像源,道理大家都懂,你要是用国外的镜像源,一天都不一定能搞下来一个。

点击「设置」按钮,在左侧选择「Docker Engine」

然后在右侧的配置框中添加如下配置,加到最下面即可:

1
2
3
4
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://cr.console.aliyun.com/"
]

加完后,点击「Apply & restart」,这时候会重启 Docker 服务。

载入测试镜像测试

运行docker run hello-world来载入测试镜像测试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
PS C:\Users\khalid> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:a26bff933ddc26d5cdf7faa98b4ae1e3ec20c4985e6f87ac0973052224d24302
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/