系统要求
Windows 10
64位:Pro、Enterprise或Education(内部版本16299或更高版本)。对于Windows 10 Home,请参阅Docker Desktop on Windows Home。- 必须启用
Hyper-V
和Containers Windows
功能。 - 在Windows 10上成功运行客户端
Hyper-V
需要以下硬件前提条件:- 带二级地址转换(SLAT)的64位处理器
- 4GB系统RAM
- 必须在BIOS设置中启用BIOS级别的硬件虚拟化支持。有关更多信息,请参阅此文档。
步骤一:安装WSL
适用于 Linux 的 Windows 子系统(WLS)安装指南
步骤二:安装Docker Desktop for Windows
Docker Desktop for Windows
是Docker for Microsoft Windows
的社区版本。点击下载Docker Desktop for Windows。- 下载完成后,双击文件进行安装。
步骤三:迁移Docker镜像文件
Docker镜像文件默认存储在C盘,为了避免占用C盘,对Docker镜像文件进行迁移。
- 退出Docker桌面版,确认所有wsl应用都已退出;
wsl -l -v
- 导出docker镜像文件;
wsl --export docker-desktop-data D:\\WSL\\docker-data\\docker-desktop-data.tar
wsl --export docker-desktop D:\\WSL\\docker-data\\docker-desktop.tar
- 注销docker-desktop-data;
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
- 重新创建wsl子系统:
wsl --import docker-desktop-data D:\\WSL\\docker\\desktop-data "D:\\WSL\\docker-data\\docker-desktop-data.tar" --version 2
wsl --import docker-desktop D:\\WSL\\docker\\desktop "D:\\WSL\\docker-data\\docker-desktop.tar" --version 2
配置镜像加速器
在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:
{
"registry-mirrors": ["https://q14p4dcc.mirror.aliyuncs.com"],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
}
}
在终端命令行执行如下命令查看 Docker
版本:
docker version
结果如下:
D:\MyDocker>docker version
Client: Docker Engine - Community
Cloud integration: 1.0.2
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:00:27 2020
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:07:04 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
Docker 引擎(Engine)升级
升级 Docker 引擎的关键步骤如下:
- 需要重视升级操作的每个前置条件,包括确保容器配置了正确的重启策略;
- 在
Swarm Mode
模式下使用服务时,需要确保正确配置了draining node
。
当完成了上述前置条件的检查之后,可以通过如下步骤完成升级操作:
(1)停止 Docker
守护程序。
(2)移除旧版本 Docker
。
(3)安装新版本 Docker
。
(4)配置新版本的 Docker
为开机自启动。
(5)确保容器重启成功。
Docker 存储驱动的选择
每个 Docker
容器都有一个本地存储空间,用于保存层叠的镜像层(Image Layer
)以及挂载的容器文件系统。默认情况下,容器的所有读写操作都发生在其镜像层上或挂载的文件系统中,所以存储是每个容器的性能和稳定性不可或缺的一个环节。
以往,本地存储是通过存储驱动(Storage Driver) 进行管理的,有时候也被称为 Graph Driver
或者 GraphDriver
。虽然存储驱动在上层抽象设计中都采用了栈式镜像层存储和**写时复制(Copy-on-Write)**的设计思想,但是 Docker
在 Linux
底层支持几种不同的存储驱动的具体实现,每一种实现方式都采用不同方法实现了镜像层和写时复制。虽然底层实现的差异不影响用户与 Docker
之间的交互,但是对 Docker
的性能和稳定性至关重要。
- 在
Linux
上,Docker
可选择的一些存储驱动包括AUFS
(最原始也是最老的)、Overlay2
(可能是未来的最佳选择)、Device Mapper
、Btrfs
和ZFS
。 - 在
Windows
操作系统上,Docker
只支持一种存储驱动,即Windows Filter
。
存储驱动的选择是节点级别的。这意味着每个 Docker
主机只能选择一种存储驱动,而不能为每个容器选择不同的存储驱动。在 Linux
上,大家可以通过修改 /etc/docker/daemon.json
文件来修改存储引擎配置,修改完成之后需要重启 Docker
才能够生效。下面的代码片段展示了如何将存储驱动设置为 overlay2
。
{
"storage-driver": "overlay2"
}
如果修改了正在运行 Docker
主机的存储引擎类型,则现有的镜像和容器在重启之后将不可用,这是因为每种存储驱动在主机上存储镜像层的位置是不同的(通常在/var/lib/docker/ /...
目录下)。修改了存储驱动的类型,Docker
就无法找到原有的镜像和容器了。切换到原来的存储驱动,之前的镜像和容器就可以继续使用了。
如果希望在切换存储引擎之后还能够继续使用之前的镜像和容器,需要将镜像保存为 Docker
格式,上传到某个镜像仓库,修改本地 Docker
存储引擎并重启,之后从镜像仓库将镜像拉取到本地,最后重启容器。
在终端命令行执行 docker info
命令即可查看存储引擎信息:
D:\MyDocker>docker info
Client:
Debug Mode: false
Plugins:
scan: Docker Scan (Docker Inc., v0.3.4)
Server:
Containers: 12
Running: 1
Paused: 0
Stopped: 11
Images: 12
Server Version: 19.03.13
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.19.128-microsoft-standard
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 6.064GiB
Name: docker-desktop
ID: WN22:KFRM:3WJL:BHOC:IAUN:PLCR:7JBS:VGIN:DQZX:RWLS:QEEI:QXKW
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled