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

一、安装 WSL 先决条件

  • 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。(来自官网的说明)
    在这里插入图片描述

二、安装 Docker 前的准备

  1. 控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统
    在这里插入图片描述

  2. 重启电脑

  3. 打开应用商城搜索 WSL ,可根据自己需求选择安装 Linux 发行版,我这里选择 Ubuntu18.04
    在这里插入图片描述

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

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

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

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

# 切换到源路径
cd /etc/apt

# 备份 Ubuntu 原始源
cp sources.list sources.list.bak

# 开始换源
sudo vim sources.list

Ubuntu18.04 阿里镜像源

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 中科大镜像源

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 清华镜像源

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

换源之后,进行更新

# 更新源
sudo apt update

# 更新软件包
sudo apt upgrade

三、Windows 安装 Docker

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

1. 原生 Linux 安装 Docker 方式

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

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,命令如下。

sudo apt install -y docker-ce

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

sudo service docker start

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

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

# 检查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

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

    sudo apt remove docker-ce
    sudo apt remove docker-ce-cli
    
  2. 启动Docker Desktop for Windows,选择 Settings --> General,启动基于WSL2的引擎复选框(Use the WSL 2 based engine)
    在这里插入图片描述

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

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

    # 检查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. 查看安装的是哪个子系统发行版本
    C:\Users\cdavid>wsl -l
    适用于 Linux 的 Windows 子系统分发版:
    Ubuntu-18.04 (默认)
    
  2. 在子系统中创建 init.wsl
    sudo vim /etc/init.wsl
    
    输入以下内容
    #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
    
    给文件进行授权
    sudo chmod +x /etc/init.wsl
    
  3. 在 Windows 创建 bat 脚本,输入以下内容,放在 C 盘目录下(哪里都想,不要随手删了就行)。
    # 初始化脚本,注意这是 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。
    set ws=WScript.CreateObject("WScript.Shell")
    ws.Run "C:\wsl2-start.bat",0
    
    进入子系统,输入ifconfig, 以后 192.168.50.28 就是 WSL 的固定 IP 地址了。
    在这里插入图片描述
    进入子系统,输入ifconfig, 以后 192.168.50.28 就是 WSL 的固定 IP 地址了。
  • 17
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值