Windows 10 的Linux子系统WSL下安装docker

Windows 10 的Linux自系统WSL下安装docker

学习django,需要使用docker。但是因为笔记本的内存太低了,只有4G,带不动虚拟机,只好用WSL续命了。

本来想离线安装Docker的
Windows 10 的Linux子系统WSL下安装docker_第1张图片
但是一直报错,一开始安装的WSL终端界面已经关掉了,没办法截图了。总是提示在安装docker-ce的时候出错,还提示libltdl7这个出问题了,但libltdl7这个是不能被安装的,一时间安装进行不下去了。

后来就去找Win10 的WSL下安装docker的办法了
在知乎找到一篇:https://zhuanlan.zhihu.com/p/39187620
下面是我按照这个流程来进行安装的过程

sudo apt update
sudo apt-get install docker.io

Windows 10 的Linux子系统WSL下安装docker_第2张图片
首先更新了一下源,然后就开始安装docker.io了。安装还是挺顺利的。

Windows 10 的Linux子系统WSL下安装docker_第3张图片
docker就安装好了。
Windows 10 的Linux子系统WSL下安装docker_第4张图片
然后启动docker

sudo service docker start

注意这里需要使用sudo
Windows 10 的Linux子系统WSL下安装docker_第5张图片
但是运行测试命令时候运行不了
Windows 10 的Linux子系统WSL下安装docker_第6张图片
提示没有这个daemon。没有docker的守护进程。

然后我就按知乎的教程执行了一下


sudo cgroupfs-mount
sudo service docker start

Windows 10 的Linux子系统WSL下安装docker_第7张图片
我看漏了这个管理员启动WSL。。所以执行后没有效果。
然后我就去找别的解决方案了。。

就找到这个博客了

https://blog.csdn.net/qq_42114918/article/details/81840335

按照这个博客的思路,

systemctl daemon-reload

systemctl restart docker.service

执行了这个命令,但是系统提示没有这个。然后也按照博主的思路去安装了daemon,安装上了,我的系统还真没有daemon?。。。好吧

Windows 10 的Linux子系统WSL下安装docker_第8张图片
继续启动docker的测试, 无果。
Windows 10 的Linux子系统WSL下安装docker_第9张图片
然后又去知乎那篇文里看了
然后就找到这个
Windows 10 的Linux子系统WSL下安装docker_第10张图片
管理员模式启动
Windows 10 的Linux子系统WSL下安装docker_第11张图片

然后测试,还是不行

saberbin@Saberbin:~$ sudo docker run hello-world
[sudo] password for saberbin:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

然后我就进入了root,尝试了还是不。WSL管理员启动root好像不能截图

用win10自带的可以截图。。。
Windows 10 的Linux子系统WSL下安装docker_第12张图片
一开始还是不行,然后我就重启了一下docker服务,在用sudo docker run hello-world就可以了。估计是刚刚进行了什么操作没有重启,又或者是普通WSL用户没有权限,这个就不得而知了。
WSL的性能还是堪忧啊。

最终docker测试命令启动成功,看到第一行输出为“Hello …”就可以了。
Windows 10 的Linux子系统WSL下安装docker_第13张图片

终于可以了。
WSL的普通用户也可以运行docker的测试了,但是估计也要使用管理员模式启动WSL的终端才行。
Windows 10 的Linux子系统WSL下安装docker_第14张图片

关机后再次启动docker

关机之后再次启动docker,还是出现daemon的报错
Windows 10 的Linux子系统WSL下安装docker_第15张图片
早上又折腾了一下。
开了个管理员的WSL终端,进入root用户运行还是不行,然后重启docker,无果,最后再折腾了一下,居然又可以了。
现在总结一下
先关闭原来的管理员WSL界面,重新开启一个
首先需要进入管理员的WSL,然后直接进入root用户,直接在root用户启动docker,就可以了

Windows 10 的Linux子系统WSL下安装docker_第16张图片

你可能感兴趣的:(win10,WSL,docker,python)