抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一、使用DockerToolbox原因

  1. Docker for Windows 基于 Hyperv,同时使用安卓模拟器需要开启Intel Virtual Technology(VT-x),而Hyper-v与VT-x冲突,不可同时开启;
  2. Hyper-v是Windows 10 专业版才有的功能,家庭版虽然也能通过一些方法开启,但相对来说会比较麻烦

DockerToolbox实际上是利用 VirtualBox 创建一个虚拟机,实现docker 守护进程的运行

二、安装DockerToolbox

  1. 下载DockerToolbox

阿里云镜像下载地址: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
Docker分为CE 和 EE两个版本 CE为社区免费版,EE为企业版,这里下载CE最新版就好了

  1. 安装DockerToolbox

直接双击下载好的.exe文件即可安装,安装过程中可以自己选择安装的组件
其中VirtualBox组件如果已经安装过了,可以取消勾选;git 也最好不要勾选,默认提供的版本较低,建议自行安装

  1. 双击桌面上生成的Docker Quickstart Terminal 图标即可自动开始运行;

使用此方式安装出现错误的概率较高,建议到第4步手动执行命令。

下面是正常运行的样子,实际上如果没有正确安装,可能会出现一些错误

  1. 安装docker虚拟机

如果使用Docker Quickstart Terminal,会自动安装一个的default虚拟机,但是有时可能会因为boot2docker.iso文件不存在或者版本比较老,会自动去github下载,导致时间比较长甚至失败。

操作步骤如下:
① 从Docker Toolbox的安装目录下复制boot2docker.iso至C:\Users\用户名.docker\machine\cache目录
② cd 至C:\Users\用户名.docker\machine\cache目 录执行下面的命令

docker-machine create --driver virtualbox --virtualbox-boot2docker-url=boot2docker.iso --engine-registry-mirror=https://registry.docker-cn.com default

–engine-registry-mirror= 选项设置镜像加速,推荐使用阿里云镜像;
–virtualbox-boot2docker-url=boot2docker.iso 是指定创建虚拟机需要的镜像文件的地址
其他选项查看手册 docker-machine create –help

安装成功后执行docker-machine ssh进入虚拟机内进行操作

三、设置docker镜像加速

如果已经在docker-machine create时指定了--engine-registry-mirror,那这一步可以省略
执行docker-machine ssh default 命令进入刚才创建的default虚拟机

$ docker-machine.exe ssh default
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 18.03.0-ce, build HEAD : 404ee40 - Thu Mar 22 17:12:23 UTC 2018
Docker version 18.03.0-ce, build 0520e24
docker@default:~$

执行以下命令设置镜像地址

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com|g" /var/lib/boot2docker/profile

此处镜像地址使用的是 https://registry.docker-cn.com,可自行更换; 推荐使用阿里云镜像加速 ,点击访问链接地址获取 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

安装完后执行exit命令退出,使用docker-machine restart default重启虚拟机

四、配置共享文件夹

需要实时同步文件就需要配置VirtualBox的共享目录
可以执行docker-machine mount [machine:][path] [mountpoint]挂载指定目录,这里我们直接使用图形界面配置

选择需要共享的文件夹,勾选自动挂载后就会将指定的Windows下的共享文件夹路径D:\Workspace自动挂载到虚拟机根目录下的/workspace,也就是上图中指定的挂载点

保存后需要执行docker-machine restart default重启虚拟机使挂载生效

五、在powershell或cmd中直接执行docker命令

使用DockerToolbox安装docker,docker 守护进程是运行在虚拟机中的,因此如果需要在powershell或cmd环境下执行docker命令,需要配置docker相关环境变量以便windows下的docker客户端程序可以连接虚拟机中的守护进程。

  1. 如果虚拟机是使用Docker Quickstart Terminal自动执行创建的,一般会自动在windows环境变量中添加相关配置。
  2. 手动执行命令创建的docker-machine虚拟机则需要自行添加环境变量,并重启命令窗口。在命令窗口中执行docker-machine env default命令可以查看需要配置的default虚拟机的环境变量。

  1. 删除虚拟机后再次创建新的虚拟机,ip地址会变化;使用docker-machine ls命令检查虚拟机的ip地址,确保与DOCKER_HOST配置的值对应

配置正确的情况下,在powershell或者cmd中就可以直接执行docker命令了,执行docker version可以看到server端和client端的信息:

存在多个虚拟机时,想要在多个虚拟机中切换,可以执行命令将当前session下的环境变量修改为指定虚拟机的配置。此操作只针对当前命令窗口会话生效。

评论