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

目录
  • 一、安装 WSL 先决条件
  • 二、安装 Docker 前的准备
  • 三、Windows 安装 Docker

一、安装 WSL 先决条件

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

二、安装 Docker 前的准备

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

重启电脑

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

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

开始更换国内镜像源(注意:如果你选择的不是 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

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

sudo apt remove docker-ce
sudo apt remove docker-ce-cli

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

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

重启完成后就可以在 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 地址了。

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

(0)

相关推荐

  • 关于docker中 WSL 配置与修改问题

    https://docs.microsoft.com/en-us/windows/wsl/wsl-config .wslconfig Stored in your%UserProfile%directory. Used to configure settings globally across all installed Linux distributions running as the WSL 2 version.Can be usedonly for distributions run b

  • 将WSL系统更换国内源的方法(固定路径+国内镜像源+详细教程)

    目录 1.找到wsl镜像源 2.替换镜像源 2.1 可以直接用记事本打开 2.2 通过sudo进行修改 3.更新镜像源列表 1.找到wsl镜像源 首先,我们找到自己的wsl镜像源所在的地方,在cmd中输入**\wsl$** 按enter可以看到自己的wsl在这里了 如果不想以后难找,可以通过给一个网络映射添加网络位置,这样就可以直接进入啦 完成之后就在网络位置可以看见快捷进入的文件夹了 打开文件夹,进入etc/apt文件夹,可以看见sources.list这一个文件,里面就是WSL-Ubuntu

  • Windows 安装和配置 WSL的方法步骤

    什么是 WSL 引用百度百科的一段话: Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层.它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行. 我们简单的认为它是在 Windows 上安装了一个 Linux 环境就好了.也就是最好的

  • 如何通过Docker制作wsl的tar文件

    最近玩VScode的远程开发功能,它可以连接Docker的container,也可连接wsl,window下的container是运行在WSL,那就研究下直接连接WSL,而不让Docker这个二手商赚差价,嘿嘿. 通过wsl -l -o 命令我们可以看到远程可以安装的镜像列表. 通过 Microsoft Store下载镜像总是下载不下来,命令行也不行,可能是这里的网络有问题(有时候又是可以下载的,(╯‵□′)╯︵┻━┻),根据官网提示,可以通过docker来自己制作一个tar文件然后导入到wsl

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

    目录 一.安装 WSL 先决条件 二.安装 Docker 前的准备 三.Windows 安装 Docker 一.安装 WSL 先决条件 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11.(来自官网的说明) 二.安装 Docker 前的准备 控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统 重启电脑 打开应用商城搜索 WSL ,可根据自己需求选择安装 Linux 发行

  • 详解Centos下YUM安装PHP的两种方式

    在Centos下安装PHP时, 先后使用了两种方式进行实现, 现整理出来以作记录. 摘要 一般Centos下安装软件我们采用源码安装或者RPM包安装的方式,有时候更简单我们可以采用YUM源的方式 安装PHP的时候有个特殊的地方,其有两个YUM源可供选择 Webtatic方式安装升级PHP 安装webtatic源 [root@i-bskmtj6q ~]# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm Retrieving https

  • 详解Windows下PyCharm安装Numpy包及无法安装问题解决方案

    一.什么是NumPy Numpy--Numerical Python,是一个基于Python的可以存储和处理大型矩阵的库.几乎是Python 生态系统的数值计算的基石,例如Scipy,Pandas,Scikit-learn,Keras等都基于Numpy.使用Numpy, 可以进行: 1.数组和逻辑运算 2.傅里叶变换和图形操作实例 3.线性代数相关的运算操作 功能很强大有木有??? 但是 Python 官网上的发行版是不包含 NumPy 模块的.所以就需要我们自己来安装这个库. 很多人在学习Py

  • 详解React中共享组件逻辑的三种方式

    废话少说,这三种方式分别是:render props.高阶组件和自定义Hook.下面依次演示 假设有一个TimeOnPage组件专门用来记录用户在当前页面停留时间,像这样: const TimeOnPage = () => { const [second, setSecond] = useState(0); useEffect(() => { setTimeout(() => { setSecond(second + 1); }, 1000); }, [second]); return

  • 详解Java中数组判断元素存在几种方式比较

    1. 通过将数组转换成List,然后使用List中的contains进行判断其是否存在 public static boolean useList(String[] arr,String containValue){ return Arrays.asList(arr).contains(containValue); } 需要注意的是Arrays.asList这个方法中转换的List并不是java.util.ArrayList而是java.util.Arrays.ArrayList,其中java.

  • 详解Python修复遥感影像条带的两种方式

    GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如下: def gdal_repair(tif_name, out_name, bands): """ tif_name(string): 源影像名 out_name(string): 输出影像名 bands(integer): 影像波段数 """ #

  • 详解Python+opencv裁剪/截取图片的几种方式

    前言 在计算机视觉任务中,如图像分类,图像数据集必不可少.自己采集的图片往往存在很多噪声或无用信息会影响模型训练.因此,需要对图片进行裁剪处理,以防止图片边缘无用信息对模型造成影响.本文介绍几种图片裁剪的方式,供大家参考. 一.手动单张裁剪/截取 selectROI:选择感兴趣区域,边界框框选x,y,w,h selectROI(windowName, img, showCrosshair=None, fromCenter=None): . 参数windowName:选择的区域被显示在的窗口的名字

  • 详解python连接telnet和ssh的两种方式

    目录 Telnet 连接方式 ssh连接方式 Telnet 连接方式 #!/usr/bin/env python # coding=utf-8 import time import telnetlib import logging __author__ = 'Evan' save_log_path = 'result.txt' file_mode = 'a+' format_info = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(level

  • 详解pytorch的多GPU训练的两种方式

    目录 方法一:torch.nn.DataParallel 1. 原理 2. 常用的配套代码如下 3. 优缺点 方法二:torch.distributed 1. 代码说明 方法一:torch.nn.DataParallel 1. 原理 如下图所示:小朋友一个人做4份作业,假设1份需要60min,共需要240min. 这里的作业就是pytorch中要处理的data. 与此同时,他也可以先花3min把作业分配给3个同伙,大家一起60min做完.最后他再花3min把作业收起来,一共需要66min. 这个

  • 详解Python进行数据相关性分析的三种方式

    目录 相关性实现 NumPy 相关性计算 SciPy 相关性计算 Pandas 相关性计算 线性相关实现 线性回归:SciPy 实现 等级相关 排名:SciPy 实现 等级相关性:NumPy 和 SciPy 实现 等级相关性:Pandas 实现 相关性的可视化 带有回归线的 XY 图 相关矩阵的热图 matplotlib 相关矩阵的热图 seaborn 相关性实现 统计和数据科学通常关注数据集的两个或多个变量(或特征)之间的关系.数据集中的每个数据点都是一个观察值,特征是这些观察值的属性或属性.

随机推荐