前言
最近又开始研究win10自带的linux子系统(wsl), 在将自己公司用的编译环境配置好之后, 相继配置了tftp和ssh, 现在用xshell直接ssh登录感觉不要太好, 已经满足了自己平时的开发需求, 考虑到自己偶尔也会用到docker, 所以想在wsl中配置一下docker环境, 也算是自己开始学习了解docker这一进来比较火的东东.
安装
网上找了很多教程, 最后发现还是官方的最靠谱, 先上网址https://docs.docker.com/install/linux/docker-ce/ubuntu/
再附上纯命令
sudo apt-get update
sudo apt-get install
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 注意下面这是x_86/amd64, 其他架构参考官网
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
如果运行显示如下的话, 说明服务没起, 需要先用命令sudo service docker start起一下:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
hello-world运行结果如下说明成功:
sudo service docker start
* Starting Docker: docker [ OK ]
lain@DESKTOP-V537K6U:/mnt/e/vmware/project-ttu-1119/ms_server_cw$ sudo docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
遇到的问题及解决
刚开始按照上面的步骤安装, hello-world是无法运行的, 我不确定是不是所以的wsl都这样, 所以上面只是给了正常的流程, 如果很不幸你按照上面的步骤最后也失败了, 那不妨继续往下看, 说不定咱们的问题相同哦.
问题的现象是:
$ sudo service docker start
* Starting Docker: docker [ OK ]
$ sudo docker run hello-world
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"EOF\"": unknown.
ERRO[0012] error waiting for container: context canceled
出现上面的现象, 应该是因为docker的版本太新导致的(起码我的是), 这时需要我们安装旧一点版本的docker, 方法如下:
# 先卸载之前安装的docker
sudo apt-get autoremove docker-ce
# 然后查看一下当前可用的所有版本docker
$ apt-cache madison docker-ce
docker-ce | 5:19.03.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.9~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.8~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.7~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.6~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.06.3~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.06.2~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 18.03.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
#最后选择一个旧版本安装, 我选的最后一个
$ sudo apt-get install docker-ce=18.03.1~ce~3-0~ubuntu
安装成功后验证一下:
$ sudo service docker start
$ sudo docker run hello-world
这里要特别感谢一下这位仁兄, 因为我的安装历程就是就此止步, 达到成功的.
写在最后
自己安装docker也是经历了诸多绝望, 之前已经失败过一次了, 好在这第二次挺住了, 最终安装成功, 当然, 现在还没有学习过要怎么使用, 后面加油吧. 最后, 如果这篇文章对你有所帮助, 就请给个赞吧, 也希望您能浏览下本人的其他文章, 说不定还会有点收获, 谢谢.