前言:
docker是一门很火的开源技术,发展迅速,而且很有前景。本次新开的docker实战是继运维笔记后的一个新尝试,尽本人所能,写出自己学习使用docker时候的体会。本次的docker系列会采用docker-ce(17之后的版本)基本上就是最新的docker版本来测试,目的是多踩坑,能让大家遇到问题时有个参考。本博客的参考主要来源仍然是docker官方文档,还是那句话,看官方文档不踩坑。
本次第一篇博客主要是为了解决我自己的一个问题,我在写python自动命令分发脚本的时候运用了多线程的模块来让并发的将命令分配到后端的多态测试主机上,但是我自己并没有那么多真实主机,而且就算是使用VMware或者kvm这样的虚拟化我也很难开启100台主机这时候我就想起了docker,只有他能让我一下子拥有那么多的测试机,但是我的开发环境是win8.1,这就给我出了难题,官网上docker-ce要求windows起码是win10-professional版本,仔细查阅官网发现低版本windows还可以通过docker-toolbox来搞docker。docker toolbox官方文档 docker-toolbox的下载地址就在官方文档页面中点击下载。
一.docker-toolbox安装与配置
直接打开下载下来的安装包安装即可,这里没什么说的
docker-toolbox安装包
安装好后会在桌面上出现一个“Docker Quickstart Terminal”,通过他可以完成初始化,但其实我从来没用这个初始化成功过。我们使用命令自己初始化即可也十分简单。
现在以管理员权限打开你的powershell(注意不是cmd)。输入
docker-machine ls
查看virtualbox虚拟机的状态。如果显示如下那么就代表安装正常了。
这里我们就解释下我们下载那200多mb的docker-toolbox里面的东西,除了像docker-machine这样的docker管理命令包之外,还有一个virtualbox虚拟机
由于win10之前的版本并不支持Hyper-v功能所以我们的docker其实是运行在一个虚拟机上面的。这就是为什么要安装virtualbox的原因。
现在初始环境搭建完成开始创建docker所依附的虚拟机
docker-machine create --driver=virtualbox default
使用上面的命令就创建了一台名字为default的虚拟机,通过打开virtualbox可以看到。在创建这个虚拟机的过程中可能会出现一些错误,其中网络问题最常见。根据命令行给的提示说是个bug,它会建议你升级virtualbox来解决,但我升级后发现仍然没有解决,最后直接重启windows就好了。
获取虚拟机的环境变量
PS C:\Windows\system32> docker-machine.exe env
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.100:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\mo\.docker\machine\machines\default"
$Env:DOCKER_MACHINE_NAME = "default"
$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true"
# Run this command to configure your shell:
# & "D:\Program Files\Docker Toolbox\docker-machine.exe" env | Invoke-Expression
获取这些环境变量的目的就是为我们使用docker创建环境,所以只要执行一遍上面的环境变量赋值即可,我们使用Invoke-Expression命令。
PS C:\Windows\system32> docker-machine.exe env default | Invoke-