AqYoung

分享渗透知识与技巧

0%

Win10系统Ubuntu安装docker

对于在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博客,未经许可禁止转载: