wsl2docker的简单介绍

本篇文章给大家谈谈wsl2docker,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

WSL2中安装docker 并开机启动

win10 安装 wsl2 的步骤可参考 :

依次执行以下几条命令

注意, 把 $USER换成你 安装wsl2时候取的 账号,

② 然后, 把以下内容添加到脚本中

③ 给脚本添加执行权限

1 如图, 我的登录名叫 ubuntu, 你把ubuntu改成你的登录名即可

2 NOPASSWD 冒号后面 ALL, 表示执行任何命令都不需要输密码 , 你也可以指定只有 /晌樱庆bin/sh /usr/颂老local/sbin/start_docker.sh 这个命令不需要密码, 自己根据宴握需求使用即可

点新建., 选择登录时, 所以用户

参数 :

把 只有计算机使用交流电.... 这个选项给去掉

这个时候就已经大功告成了, 保存好这个计划任务后, 就可以去 重启电脑试一下。

[img]

【Windows Docker】docker挂载解决IO速度慢的问题

这个问题花了一天的时间来解决,在网上有一些参考,但是都不太满意。

我们使用WSL 2来运行Docker,通常会使用挂载的功能,把windows的文件挂在到Docker中,但是这种跨文件系统的操作败猛性能不佳。

把windows系统的文件挪到WSL系统下,然后在WSL子系统中(这里选择Ubuntu)启动docker(同时执行文件挂载),这样进入Docker后的IO操作不存在跨系统操作,速度会有较大提升。

为袭胡了达到上述目的,我们需要安拍枯拦装一个中介:Ubuntu(WSL的发行版),把windows系统的文件挪到wsl文件系统(Ubuntu)中,然后在Ubuntu中启动Docker。

网上很多人的方案给了我启发,但是看到很多方案并没有解决问题,抛砖引玉,希望能解决大家的问题。

WSL2 子系统迁移(docker&ubuntu)

(1)查看wsl子晌森系统发行版

(2)关闭docker-desktop

(3)关闭所有wsl子系统发行版

(4)将子系统导出到自己想要的地方 E:\Development\Docker\docker-desktop-data.tar

(5)注销 docker-desktop-data 子系宴信亩统发行版。

(6)重新导入docker-desktop-data(注意:要先写目录,然后再写文件名)

(7)迁移完成,重新打开docker

感觉步骤与上述差不多。尝试一下

(1)关闭所有的wsl子系统

(2)导出子系统到想要的地方

(3) 注销Ubuntu

(4)重新导入Ubuntu (注意要先写目录,再写目录下的文件)

(5)将Ubuntu设置为默认子系统

(6)成功将Ubuntu移到E盘,解放C盘

(7)有个问题,在没有迁移之前对wsl ubuntu设置的内容全部没了。 有什么办法将之前的设置给弄回来呢?网上查找一番,发现是用户的问题。wsl import之后的子系统,会默认 root 用户登录。但是我之前的用户是 win 。所以只要用户切换到win用户就可以了。坦昌

(8)还有一个小问题,如果重新打开wsl ubuntu,默认还是root用户。如何调整为默认普通用户呢?修改注册表

解放了C盘,将4G多的空间移到其他硬盘。

docker desktop win10挂载问题解决

更新于2020/8/13

此文章适用于安装完docker desktop install ,for windows10,并且是默认使用wsl2安装的docker。现在的win10家余册庭版也已经支持安装。

注意如果我们不把docker集成到已有的wsl2的linux发行版(如图),docker自己的发行版是没有bash(如果有进入docker发行版shell的方法请大佬告知)

在power shell输入(CMD 不支持将 UNC 路径作为当前目录)

最开始的想法是docker的分发版中是不是可以像Linux一样的挂载文件,可惜没有成功。

在docker-desktop-data会保存docker的iamge和容器数据,暂时不清楚docker-desktop分发版的作用,可能是docker实际运行的分发版?

通过查看官方的文档,发现docker wsl2安装的版本Settings已经没有Shared Devices选项,因为docker的文件挂载交给了wsl2的机制处理。

我们可以看到docker安装后wsl2默认的分发版是dockers-desktop-data,尝试使用sh或者bash进入这个竖毁宏分发版:

可以看到这个Linux分发版中没有sh和bash。我们切换为另一个分发版:

很明显,docker-desktop分发版中有sh和bash。但是这个分发版的根目录其实不是docker挂载时的根目录。

官方文余衫档介绍了挂载的方法

不报错但根本没有挂载成功。

可能是官方文档的失误,我又查找了wsl2的说明文档,找到了win系统磁盘在wsl2上的设置文件:

显然c盘映射到了/mnt/host/c,而不是/mnt/c。但是使用此路径挂载依旧无效。

最后在前辈的文章 上找到答案,此处记录一下正确的挂载命令:

注意盘符一定要小写。

挂载文件一定要注意windows的CRLF文件在Linux上有兼容问题,最好始终使用LF文件,windows上的IDE基本都可以正常读取LF文件。windows上的git默认选项会自动把项目的LF换为CRLF,取消方法

既然官方建议我们在linux文件系统下进行挂载,我最后找到了方法把挂载文件放在Linux文件系统中。通过文件资源管理器将挂载文件直接放入docker的运行时根目录下(开启docker后才可以访问)

比如我们要挂载下面的文件夹:(可以直接在windows文件资源管理器地址栏输入查看)

命令为

更新:注意这个目录是运行时目录,docker停止运行后会失去持久化,重启后还原为原目录。暂时没有找到其持久化的方法。

Windows使用WSL2安装Docker

当前版本的 docker-desktop 已经默认开启支持WSL2,安装时保持默认选项直接下一步,安装完毕之后重启电脑。之后docker会弹出WSL2尚未配置完毕,点击提示框中的链接,安装MSI扩展包,重启电脑即可愉快地使用docker。

想岩衫在Windows上运行docker,可谓是一言难尽。从最初的docker-toolbox到基于Hyper-v虚拟化的docker-desktop,无论是哪个方式,都有一堆一堆的坑点。

想要在windows上愉快地玩耍docker,难道就只能virtualbox装个linux再装docker?(或者docker-client配远程docker-daemon?)

于是,我决定换个坑踩。

以管理员运行Powershell(开启WSL,如已开启可跳过)

之后重新启动计算机。

以管理员身份打开 PowerShell 并运行:

启用这些更改后,需要重新启动计算机。

在 PowerShell 中运行:

打开Microsoft Store,搜索 ubuntu 并安装。

之穗枣此后启动刚刚安装的Ubuntu。

打开刚刚安装的Ubuntu,安装依赖:

信任 Docker 的 GPG 公钥:

对于 amd64 架构的计算机,添加软件仓库:

最后安装

安装大功告成了,运行

不出意外的话,大概率会报错。

将当前用户添加到docker用户组

之后重启 windows计算机 。

重启完成后,打开Ubuntu,运行

输出[OK]。

运行

没有报错,

标签列表