我在WSL(Debian GNU/Linux)上安装了Docker
我在WSL(Debian GNU/Linux)中安装了docker。
首先
我安装并启动了Docker Desktop,但是我的家用电脑配置太低,导致它陷入了卡顿和冻结的状态,我无法同时进行工作,所以决定在WSL上进行安装。
2. 环境
Windows10的操作系统环境
Windows 10 Pro Insider Preview
評価コピー。Build 18875.rs_prerelease.190405-1518
WSL(Debian GNU/Linux)的环境
xxxxxx@xxxxxxxxxxxxxx:~$ cat /etc/debian_version
9.7
xxxxxx@xxxxxxxxxxxxxx:~$ cat /etc/issue
Debian GNU/Linux 9 \n \l
3. 安装操作
3.1. 绊倒
如果按照这个页面上的指示进行操作,安装本身应该很简单。只需从页面上复制并粘贴命令,就可以快速进行。页面链接如下:
https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce
然而,使用该方法安装的最新版本的Docker,虽然Docker服务能够成功启动,但在下一阶段的容器启动时,会抛出以下错误,无法正常工作。
xxxxxx@xxxxxxxxxxxxxx:~$ docker start 209ebb8f7e26
Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:297: getting the final child's pid from pipe caused \"EOF\"": unknown
Error: failed to start containers: 209ebb8f7e26
在进行调查时发现,由于WSL不支持Docker的新功能,导致通信不稳定,建议降级使用Docker。在网络上的信息中,Ubuntu的相关内容很多,而Debian的较少。此外,关于WSL的文章更是稀少,将用英文撰写的针对Ubuntu和macOS的文章转化为适用于WSL(Debian GNU/Linux)的内容,是花费最多时间的任务。
3.2. 重新安装(降级)
请按照手册中的说明,使用以下命令来删除docker-ce。
sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker
通过以下命令指定安装docker-ce的版本进行安装。
(安装了17.03.3~ce-0~debian-stretch版本后,一切顺利。)
sudo apt-get install docker-ce=17.03.3~ce-0~debian-stretch
以下的部分很重要,但官方手册里没有写,我曾经遇到了一些问题,但如果按照以下顺序输入命令,它就能启动。
sudo cgroupfs-mount
sudo usermod -aG docker $USER
sudo service docker start
cgroupfs-mount有特殊的安全机制。如果不运行这个命令,Docker服务将无法启动。
已确认 Docker 的启动如下所示。
xxxxxx@xxxxxxxxxxxxxx:~$ sudo service docker status
[sudo] password for kazuki:
[ ok ] Docker is running.
执行容器。
sudo docker run hello-world
总结
如果一开始有关于降级并安装docker-ce的信息该多好,所以这次我就发帖了。如果WSL更新后,可能也会支持最新的docker,虽然不知道以后会怎么样,但我还是会将其作为备忘录总结一下。
・ 由于debian的资料较少,所以调查起来更容易使用ubuntu。
・ 在Windows管理员模式下启动终端。
・ Docker的启动命令没有在手册中列出。需要执行cgroupfs-mount命令。
・ 将docker-ce降级至17.03.3~ce-0~debian-stretch版本。
・ 同样可以参考https://qiita.com/forest1/items/ab6d8b345653c614229b。