对于在Windows10子系统Ubuntu安装docker遇到的一些问题记录
问题发现
通过 Docker 的简单使用指南可以成功的安装docker,但是在Win10子系统Ubuntu下,安装完后执行”docker version”却发现只有”client”没有”server”。
yang@DESKTOP-610CBGS:/mnt/c/Users/y1385$ docker version
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.40
Go version:go1.12.17
Git commit:afacb8b7f0
Built: Wed Mar 11 01:25:46 2020
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
通过查阅资料我们可以知道Windows下的Ubuntu是不能直接安装docker。
问题解决:
安装 docker toolbox
由于我的系统是Windows家庭版的。不能安装Docker Desktop,所以我这里使用的docker toolbox。
下载toolbox
http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
点上面的aliyun链接之后选择一个DockerToolbox-x.x.x-ce.exe版本安装。之后无脑下一步即可。
可能遇到的问题
安装完成之后双击桌面的docker图标,页面打印信息说Boot2Docker的版本不合适,得重新下载,然后就一直下载,最后要么卡死在下载环节,要么下载完了也无法看到大鲸鱼。
但是其实boot2docker这个文件根本不需要下载。
所以我们只需要删除default的machine(用户cmd命令切换到toolbox的安装目录,默认为:C:\Program Files\Docker Toolbox)之后。
docker-machine ls # 查看当前的docker虚拟机
如果STATE是Error说明有问题。
docker-machine rm default #删除docker虚拟机
docker-machine create --driver virtualbox --virtualbox-boot2docker-url=boot2docker.iso default #重新创建
docker-machine ls # 查看当前的docker虚拟机
如果STATE是Running说明是正常的。
配置阿里云加速
点这里去申请一个镜像加速地址,在我另外一篇docker简单指南有介绍到。
docker-machine stop default #停止docker虚拟机
docker-machine rm default
docker-machine create --driver virtualbox --virtualbox-boot2docker-url=boot2docker.iso --engine-registry-mirror=https://o7ch5p59.mirror.aliyuncs.com default # 最后的xxxo7ch5p59需要换成你特有的阿里云加速
docker info
修改镜像文件存储位置
docker-machine stop default #停止docker虚拟机
在桌面双击启动Oracle VM VirtualBox,Ctrl+D 打开虚拟介质管理,选中disk.vmdk,点复制,然后一路next到最后一步填新的目录,保存为disk_new.vdi
点击存储,控制器右上角添加新的虚拟硬盘就行了。
之后重启点击桌面的docker启动
到这里出现鲸鱼说明toolbox安装成功。
Ubuntu连接到 toolbox的docker
# 在cmd中执行
docker-machine env default
# 得到类似的以下输出:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\用户名\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
到Ubuntu中修改~/.profile(其他linux登陆自动执行的文件也可以)
# 在文件后面添加如下:
export DOCKER_HOST=192.168.99.100:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/mnt/c/Users/用户名/.docker/machine/machines/default/
export DOCKER_MACHINE_NAME=default
export COMPOSE_CONVERT_WINDOWS_PATHS=true
第三行的用户名记得根据”docker-machine env default”显示来添加。之后
source ~/.profile
测试
# 在Ubuntu中输入
docker version
# 显示:
Client: Docker Engine - Community
Version: 19.03.8
API version: 1.37 (downgraded from 1.40)
Go version:go1.12.17
Git commit:afacb8b7f0
Built: Wed Mar 11 01:25:46 2020
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.03.0-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.4
Git commit: 0520e24
Built:Wed Mar 21 23:14:54 2018
OS/Arch: linux/amd64
Experimental: false
说明我们安装成功了,我们测试一下
docker search hello
如果你不幸出现如下的问题:
Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: dial tcp: lookup index.docker.io on 10.0.2.3:53: read udp 10.0.2.15:47946->10.0.2.3:53: i/o timeout
那么你只需要回到安装docker toolbox重新安装即可。
尾巴:
这个文章记录了我在Windows10的Ubuntu安装docker的一些问题解决,最后得出,这不是一个好的选择,由于一些docker对Windows支持的原因出现了各种各样的问题,这里由于我的Windows不是pro版的,所以不能使用docker desktop for windows更加麻烦。这篇文章是发表于2020-04-05日,所以,如果你也遇到问题的话,希望可以给你参考,因为随着时间的推移方法不一定有效,但是思路是不变的。
声明:
笔者初衷用于分享与交流网络知识,若读者因此作出任何危害网络安全行为后果自负,与作者无关!
本文属于@ayoung博客,未经许可禁止转载: