介绍
什么是docker-machine
,简单来说就是给你快速创建一个docker容器环境的。类似于vagrant。通过 docker-machine 命令来管理这些虚拟机和 Docker。
安装
如果是mac和win10系统安装docker.dmg文件的时候、默认就已经给安装了。
使用
用docker-machine
来创建虚拟机(virtualbox)
创建个一个demo –docker虚拟机
➜ test docker-machine create demo
Running pre-create checks...
(demo) No default Boot2Docker ISO found locally, downloading the latest release...
(demo) Latest release for github.com/boot2docker/boot2docker is v18.09.0
(demo) Downloading /Users/qidong/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso...
如果一直没反应、估计github的网址应该被墙了。打开命令行ping一下
github被墙了。
解决办法
1、添加代理加速器:(不怎么好用)
[阿里加速器][3]:docker-machine create --engine-registry-mirror=https://x6wyeo35.mirror.aliyuncs.com -d virtualbox deephash-master
[DaoCloud加速器][4]:docker-machine create --engine-registry-mirror=http://f1361db2.m.daocloud.io -d virtualbox deephash-master
2、 通过网页下载然后指定本地路径:(亲测好用,推荐)
step1: 通过谷歌下载到本地:
https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso
step2: 移动到目标路径:
/Users/qidong/.docker/machine/cache
shell命令:
mv /Users/qidong/Downloads/boot2docker.iso
/Users/qidong/.docker/machine/
step3: 指定本地boot2docker.iso,跳过网络check.
shell命令:docker-machine create deephash-master -d virtualbox --virtualbox-boot2docker-url=/Users/qidong/.docker/machine/cache/boot2docker.iso
备注:–virtualbox-boot2docker-url
手动指定了boot2docker.iso位置。如果不指定该参数,则会从网络直接下载最新版本,非常缓慢。
安装成功。
通过docker-machine管理本地或远程的虚拟机
用win10操作。
查看docker-machine
下的虚拟机
C:\Users\Administrator>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
demo - virtualbox Running tcp://192.168.99.100:2376 v18.09.0
停止开启和删除
docker-machine stop demo
docker-machine start demo
docker-machine rm demo
win10链接docker-machine创建的虚拟机
获取docker-machine要连接的远程docker虚拟机
docker-machine env demo
运行命令 @FOR /f “tokens=*” %i IN (‘docker-machine env demo’) DO @%i
windows的client端连接的是demo的server端
Mac端使用的命令链接远程虚拟机
➜ centos7 docker-machine env deephash-master
运行:eval $(docker-machine env deephash-master) 这样链接的就是远程的了
删除远程daocker的server的链接
docker-machine env --unset
eval $(docker-machine env --unset)
链接已经存在的centos7主机VPS
如果说目前拿阿里云的ECS举例 、线上已经存在的ECS可以用docker-machine进行关联。
在远程的ECS安装docker、并且开放端口。
安装 docker 到笔记(一)。如果本地没有用ssh秘钥的方式登录过远程ECS请生成ssh的key
ssh-keygen
sh-copy-id root@47.105.179.215
我的ECS是为了备案域名、双11活动拼团买的。99一年带宽是非常感人的1m。用现成ECS做实验
docker-machine create -d generic --generic-ip-address=47.105.179.215 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm
远程管理阿里云docker虚拟机
下面方法是动态创建不存在的docker虚拟机
阿里云的docker-machine
官方是不支持的、但第三方支持、第三方支持的github地址是:传送门
阿里云官方github:传送门
安装阿里的docker-machine插件
文档
我用的是直接编译好的windows64、改好民宅放在docker目录里面、这样就不用配置环境变量了。注意:下载好了改下文件名字,
第二种方式是直接用go编译安装
$ go get github.com/AliyunContainerService/docker-machine-driver-aliyunecs # 下载go代码到本地
# 下载完成后,进入gopath目录下 $GOPATH/src/github.com/AliyunContainerService/docker-machine-driver-aliyunecs
$ go build # 此命令会在当前目录下生成 docker-machine-driver-aliyunecs.exe 文件
把docker-machine-driver-aliyunecs.exe文件夹复制到任意目录,但是要把目录地址加入到环境变量PATH中 。
如果阿里云的账户上有钱大于100块、那么用docker-machine可以远程的创建阿里云的ECS的docker专用版本。
未完待续中。。。。