服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - 详解Windows 利用 WSL2 安装 Docker 的2种方式

详解Windows 利用 WSL2 安装 Docker 的2种方式

2022-11-23 15:10陈所长研究室 服务器知识

这篇文章主要介绍了Windows 利用 WSL2 安装 Docker 的2种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、安装 WSL 先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。(来自官网的说明)

详解Windows 利用 WSL2 安装 Docker 的2种方式

二、安装 Docker 前的准备

控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统

详解Windows 利用 WSL2 安装 Docker 的2种方式

重启电脑

打开应用商城搜索 WSL ,可根据自己需求选择安装 Linux 发行版,我这里选择 Ubuntu18.04

详解Windows 利用 WSL2 安装 Docker 的2种方式

安装完成后可在开始菜单里找到快捷方式并启动,第一次运行需要等待安装并设置用户名、密码。

详解Windows 利用 WSL2 安装 Docker 的2种方式

开始更换国内镜像源(注意:如果你选择的不是 Ubuntu18.04,这一步不太一样

WSL 默认源的服务器地址在国外,速度很慢,强烈建议使用国内源,而不同 Linux 发行版镜像源文件地址不一样,比如 Ubuntu 是在 /etc/apt/sources.list,Centos 是在/etc/yum.repos.d/CentOS-Base.repo ,同一 Linux 发行版的不同版本使用的源文件仓库地址也是不一样,这点需要注意。

如果是新手小白朋友,WSL 换源操作可以参考这篇文章:教你如何将WSL系统更换国内源?+固定路径+国内镜像源+详细教程
进入终端,输入以下命令

?
1
2
3
4
5
6
7
8
# 切换到源路径
cd /etc/apt
 
# 备份 Ubuntu 原始源
cp sources.list sources.list.bak
 
# 开始换源
sudo vim sources.list

Ubuntu18.04 阿里镜像源

?
1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

Ubuntu18.04 中科大镜像源

?
1
2
3
4
5
6
7
8
9
10
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

Ubuntu18.04 清华镜像源

?
1
2
3
4
5
6
7
8
9
10
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

换源之后,进行更新

?
1
2
3
4
5
# 更新源
sudo apt update
 
# 更新软件包
sudo apt upgrade

三、Windows 安装 Docker

Windows 安装 Docker 方式分为两种,二选一即可

1. 原生 Linux 安装 Docker 方式

进入之前安装好的 Ubuntu,添加Docker源,依次输入以下命令

?
1
2
3
4
5
6
7
8
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
 
sudo apt update

配置完 Dock而 源之后,开始安装 Docker,命令如下。

?
1
sudo apt install -y docker-ce

最后一个步骤,启动 Docker daemon。但是此处有一个问题,WSL2 经过测试无法使用systemctl命令因此我们使用 service 命令启动 Docker daemon。命令如下所示:

?
1
sudo service docker start

至此,Docker 在WSL2下安装完毕。

检查 Docker 安装是否正常,可输入以下命令进行检查。

?
1
2
3
4
5
6
7
8
9
10
# 检查dockerd进程启动
service docker status
ps aux|grep docker
 
# 查看 Docker 版本
docker version
 
# 检查拉取镜像是否正常
docker pull mysql
docker images

2. Docker Desktop for windows方式

Docker 也专门开发了可以使用 WSL2 中的 Docker 守护进程的桌面管理程序, 打开 Docker Desktop WSL2 backend 页面,下载最新的 Docker Desktop for Windows 程序 ,建议下载stable版本。下载地址为:https://www.docker.com/products/docker-desktop

确保 WSL 内的 Dokcer 已经被卸载,在 Linux 子系统执行以下命令

?
1
2
sudo apt remove docker-ce
sudo apt remove docker-ce-cli

启动Docker Desktop for Windows,选择 Settings --> General,启动基于WSL2的引擎复选框(Use the WSL 2 based engine)

详解Windows 利用 WSL2 安装 Docker 的2种方式

在 Resources 的WSL Integration中设置要从哪个 WSL2 发行版中访问 Docker,如下图使用的是 Ubuntu18.04,点击 Apply,重启Docker desktop for Windows。

详解Windows 利用 WSL2 安装 Docker 的2种方式

重启完成后就可以在 WSL2里面使用 docker 命令了。

?
1
2
3
4
5
6
7
8
9
10
# 检查dockerd进程启动
service docker status
ps aux|grep docker
 
# 查看 Docker 版本
docker version
 
# 检查拉取镜像等正常
docker pull mysql
docker images

FAQ

原生 Linux 安装 Docker 方式,Docker 无法实现开机自启和每次 WSL 启动Ip会发生变换

每次重启电脑后给 wsl2 分配的 IP 一般都会变动,我们要连接子系统内部的应用频繁换 IP 会很麻烦,参照别人的解决方法,可以给 Ubuntu 子系统中添加一个新的网卡来给宿主机连接用。

1.查看安装的是哪个子系统发行版本

?
1
2
3
C:\Users\cdavid>wsl -l
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-18.04 (默认)

2.在子系统中创建 init.wsl

?
1
sudo vim /etc/init.wsl

输入以下内容

?
1
2
3
4
#network static ip
ip addr add 192.168.50.28/24 broadcast 192.168.50.255 dev eth0 label eth0:1
#docker start
service docker start

给文件进行授权

?
1
sudo chmod +x /etc/init.wsl

3.在 Windows 创建 bat 脚本,输入以下内容,放在 C 盘目录下(哪里都想,不要随手删了就行)。

?
1
2
3
4
# 初始化脚本,注意这是 Ubuntu-18.04 和你的发行版本对应
wsl -d Ubuntu-18.04 -u root /etc/init.wsl
# 添加一个网卡
netsh interface ip add address "vEthernet (WSL)" 192.168.50.93 255.255.255.0

在Windows下 输入快捷键 WIN+R 打开运行窗口,输入 shell:startup,该目录下新建 ubuntu.vbs。

?
1
2
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "C:\wsl2-start.bat",0

进入子系统,输入ifconfig, 以后 192.168.50.28 就是 WSL 的固定 IP 地址了。

详解Windows 利用 WSL2 安装 Docker 的2种方式

进入子系统,输入ifconfig, 以后 192.168.50.28 就是 WSL 的固定 IP 地址了。

到此这篇关于Windows 利用 WSL2 安装 Docker 的2种方式的文章就介绍到这了,更多相关WSL2 安装 Docker内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_42362605/article/details/124898062

延伸 · 阅读

精彩推荐