二、Docker安装及使用教程(Windows版)

系列文章目录

一、Docker安装及初始化配置(Linux版)
二、Docker安装及使用教程(Windows版)
三、Docker常用命令和部署实例(Linux和Windows通用)
四、Dockerfile应用案例教程(将一个或多个jar包部署到docker容器中运行)
五、Docker Compose下载安装及使用教程
六、Docker Swarm、Docker Stack和Portainer的使用
七、清除docker环境中服务、镜像、容器、挂载卷、网络

1.下载安装

下载地址:https://docs.docker.com/desktop/install/windows-install/
在这里插入图片描述
双击下载的exe文件,都选择使用默认设置,等待安装完成即可。

2.启用windows Hyper-V虚拟引擎

参考菜鸟教程
Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker
Desktop for Windows 所使用的虚拟机。

注意:这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15
及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

1.打开设置

在这里插入图片描述

2.搜索【启用或关闭 windows 功能】

在这里插入图片描述
在这里插入图片描述

3.勾选Hyper-V服务

在这里插入图片描述

4、根据提示重启电脑,等待更新即可

2.启动Docker Desktop

双击启动Docker Desktop时,出现报错Docker Desktop requires a newer WSL kernel version.
在这里插入图片描述
报错原因是WSL不是最新版,现在Docker Desktop默认使用WSL 2来运行,而不是以前的Hyper-V。

WSL是适用于 Linux 的 Windows 子系统 ,可让开发人员直接在 Windows 上按原样运行 GNU/Linux
环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在
Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。

管理员方式打开windows命令行(直接打开没有操作权限),输入命令:wsl --update
在这里插入图片描述
再次双击打开Docker Desktop,可以看到使用的wsl2虚拟引擎,而不是Hyper-V。
在这里插入图片描述

3.配置加速源

运行成功后配置需要的加速源,加快下载的速度。注意在原配置后加一个逗号:

"registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
]

在这里插入图片描述
在命令行中输入docker info命令,可以在末尾看到配置后的结果:
在这里插入图片描述

4.迁移镜像路径

docker默认安装路径一般在C:\Program Files\Docker
在这里插入图片描述

WSL发行版默认安装路径在%LOCALAPPDATA%/Docker/wsl目录
在这里插入图片描述

docker的运行数据、镜像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx中,后续安装docker镜像和容器会让C盘空间紧张。
可以通过以下步骤来迁移镜像的路径:
1.关闭Docker Desktop
2.在命令行输入关闭wsl的命令:wsl --shutdown
3.将docker-desktop-data导出到你想放置的位置(后缀名设为.tar)

wsl --export docker-desktop-data PATH\FILE.tar
// PATH为导出地址,例如:D:\docker-vm-source
// FILE为导出后的文件名称,例如:docker-desktop-data
// 完整命令:`wsl --export docker-desktop-data D:\docker-vm-source\docker-desktop-data.tar`

在这里插入图片描述
4.在命令行输入注销原docker-desktop-data的命令:wsl --unregister docker-desktop-data
5.重新导入docker-desktop-data

wsl --import docker-desktop-data org_folder src_file --version 2
// org_floder:想存放镜像和容器的目录
// src_file:步骤3中导出的文件名
// 完整命令:`wsl --import docker-desktop-data D:\docker-vm-source\DockerDesktop D:\docker-vm-source\docker-desktop-data.tar --version 2`

在这里插入图片描述
迁移完成后重启docker即可。

5.进入docker虚拟机的方法

通过docker info 命令可以看到docker虚拟机的根目录为/var/lib/docker。
在这里插入图片描述
我们是在win10系统安装的docker,怎么进入这个目录呢?进入docker虚拟机的方法如下:
1.获取可访问Docker守护程序的容器

docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongallant/ubuntu-docker-client 

2.运行具有完全root访问权限的容器

docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh

3.切换到文件系统

chroot /host

在这里插入图片描述
在这里插入图片描述

6.限制虚拟进程的内存大小

windows版docker的使用方式和linux版docker一致,通过命令行操作即可。
在安装若干个镜像和容器后,查看windows的任务管理器和资源监视器发现vmmem的虚拟进程消耗了11G左右的内存资源
在这里插入图片描述
通过查看各docker容器的内存发现总计也才3G左右
在这里插入图片描述
解决WSL2中Vmmem内存占用过大问题的步骤如下:
1.按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹
2.新建文件 .wslconfig ,然后用记事本编辑,填入以下内容并保存:

#.wslconfig
[wsl2]
memory=4GB
swap=0
localhostForwarding=true

memory为虚拟进程内存上限,这里我限制最大4GB,可根据自身电脑配置设置。

7.常见问题

7.1 一直停留在docker desktop starting界面转圈

在这里插入图片描述
docker命令报错:error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json: open //./pipe/docker_engine: The system cannot find the file specified.
在这里插入图片描述
处理过程参考:https://blog.csdn.net/nyasm/article/details/121569182https://blog.csdn.net/sunshineGGB/article/details/122838156
1.进入docker安装目录:cd "C:\Program Files\Docker\Docker"
2.切换 Docker 守护程序:DockerCli.exe -SwitchDaemon
3.如果遇到下面错误信息,继续往下执行修复
在这里插入图片描述
以管理员身份运行Window Terminal(Windows PowerShell),输入以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All

执行完命令后重启电脑即可。

  • 32
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

funfan0517

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值