wsl中快速添加centos

wsl中快速添加centos

wsl官方的安装可以通过Microsoft Store进行安装,但是CentOS已经没有官方支持了,Microsoft Store中也没有,可以从GitHub中下载wsl的发行版:
https://github.com/mishamosher/CentOS-WSL/releases/
但是GitHub的下载速度实在太慢了,没有VPN下载几天都没有成功。

但发现docker的导出版本是可以直接导入wsl的,就是说docker和wsl是可以互通的,那太好了,docker下载CentOS使用国内的中科大的镜像源,下载速度非常快,前面也写了制作docker的镜像用于c++开发,那只需要把这个docker image运行起来,然后,导出container,再从wsl中导入就可以了。

导出docker container

sudo docker run -d --name test centos:7
sudo docker export test > /mnt/d/wsl/centos7.tar

wsl 导入

wsl -l -v
wls --import centos7 d:\wsl\centos7 d:\wsl\centos7.tar
wsl -l -v

这样wsl中就有了centos7的linux了,使用

wsl -d centos7

就可以启动centos7了,太方便了,速度非常快,并且,可以制作多个snapshot,想要恢复到某个snapshot,可以把当前的unregister,删掉,再替换一个新的,或者同时安装多个也可以。

参考

Docker的镜像和容器可以有两种导出方式:docker save和docker export的区别

  1. docker save保存的是镜像,docker export保存的是容器
  2. docker save会保留镜像所有的历史记录,docker export不会,即没有commit历史
  3. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
  4. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
    总的来说,docker export导出的文件体积会比较小。

实例

  • save:
docker save -o nginx.tar nginx:latest
# 或 docker save > nginx.tar nginx:latest  
# 其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)  

docker load -i nginx.tar 或 docker load < nginx.tar  
# 其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息  
  • export:
docker export -o nginx-test.tar nginx-test  
# 或 docker export #ID or #Name > /home/export.tar  
# 其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)  

docker import nginx-test.tar nginx:imp
# 或 cat nginx-test.tar | docker import - nginx:imp
posted @ 2023-02-26 11:28  yangwen0228  阅读(138)  评论(0编辑  收藏  举报