前言:官方说对于Windows 10以下的用户推荐使用Docker Toolbox,对于Windows 10以上的用户 推荐使用 Docker for Windows。但是我的windows 10家庭版使用Docker for Windows最后启动的时候还是报错,说我的系统不支持,无奈之下我只能选择Docker Toolbox。
一、安装Docker Toolbox
在菜鸟上找的教程地址:https://www.runoob.com/docker/windows-docker-install.html
- Docker Toolbox下载地址:
http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
我建议把git for windows也勾上,不然后续运用Docker Quickstart Terminal的时候会报bash.exe找不到,如果遇到这个问题按如下修改:
- 安装完毕之后,桌面会多出三个软件,点击第一个运行:
遇到的错误整理:-
default boot2docker ios is out-of-date
原因:主要是更新boot2docker,因为下载不了一直卡在那边
解决方法:打开docker的时候把网络断掉,此时启动程序会完成一系列注册,waiting for ip的时候把网络重新连上,完成后就可以正常使用了。后续网络连着再打开docker也不会出问题了,他不会再去检查boot2docker的版本了 -
error in driver during machine oreation:unable to start the VM:exit status 1
原因:猜测是VM版本太老旧
解决方法:先通过安全卫士卸载掉VirtualBox,然后从https://www.virtualbox.org/wiki/Downloads 下载最新版本的VirtualBox你,安装完成后再启动docker的客户端,就可以解决了。
之后就是安装这个。
-
default boot2docker ios is out-of-date
-
拉取镜像等操作的时候报错error response from daemon
原因:国外镜像太慢
解决方法:
1.使用阿里云镜像加速器地址,镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2. 登录远程服务器:docker-machine ssh default
3.配置加速器:sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=我的镜像地址 |g" /var/lib/boot2docker/profile
这里可能会遇到一个小问题,我没法粘贴复制,命令太长手动输入不太现实哈。如下图粘贴亲测可用
4.退出远程服务器:exit
5.重启远程服务:docker-machine restart default 这个时候再去运行hello world试试看:
docker run ubuntu:15.10 /bin/echo "Hello world"
打印出来了hello world 再也不会报错error response from daemon啦
整个艰辛的安装过程到此结束啦,后面就自己去玩吧!!
附加项
浅玩一下,如何用docker安装nginx:
- 拉取最新的nginx镜像
$ docker pull nginx:latest
- 查看本地镜像
docker images
- 运行容器
docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-
-d nginx: 设置容器在在后台一直运行。
-
安装成功
我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:
在宿主机中访问localhost:8080即可看到nginx欢迎页面,但是我们电脑中是没法访问到的,因为在window中宿主机是192.168.99.100,所以访问地址是http://192.168.99.100:8080
原因:docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。找到这个Linux的ip地址,一般情况下这个地址是192.168.99.100(docker-machine ip default 命令查找)