介绍

什么是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专用版本。

未完待续中。。。。

参考文章:http://www.cnblogs.com/jsonhc/p/7784466.html

参考文章:https://www.jianshu.com/p/5697b67ff44a

Last modification:January 31, 2020
如果觉得我的文章对你有用,请随意赞赏