1. 使用本地 iso 文件创建 docker 机器
docker-machine create --driver virtualbox --virtualbox-boot2docker http://.....boot2docker.iso machine_name
但是在我大中华区, boot2docker.iso 的下载却并不轻松,我们可以借用 xunlei 预先下载好 iso 文件,放到本地某个文件夹。然后通过下面的命令快速安装 docker 机器
docker-machine create --driver virtualbox --virtualbox-boot2docker file://$PWD/boot2docker.iso docker0
同样的方法也可以在本地安装 rancheros 机器
2. 使用 docker-machine 连接远程 docker 机器
docker-machine create --driver generic --generic-ip-address ip/domain --generic-ssh-user username machine_name
通过
docker-machine ls
可以查看所有通过 docker-machine 管理的主机
同时通过docker-machine ssh machine_name
还可以直接登录机器
需要注意的是,需要为你的远程机器分配不需要输入密码的 sudo 权限,否则 docker-machine 的远程连接会失败
结论:
在这里 docker-machine 用到了两个参数一个是 --driver
简写成 -d
,代表了机器运行使用的驱动程序,第二个是 --virtualbox-boot2docker-url
指定了用到的 iso 镜像 URL,既然是 URL 类型的地址,我们也可以使用 file://absolute_path/file.iso
来引导安装本地 iso 文件。
由于 docker-machine 的参数比较冗长,我们可以建立两个 bash 脚本来简化 创建本地机器
和 添加远程机器
的命令
创建本地机器脚本: make_machine.sh
建立一个本地文件 make_machine.sh
,内容如下:
#!/bin/env bash
docker-machine create --driver virtualbox --virtualbox-boot2docker $1 $2
可以这样使用:
./make_machine.sh file://$PWD/boot2docker.iso docker0
添加远程机器 add_remote.sh
建立一个本地文件 add_remote.sh
,内容如下:
#!/bin/env bash
docker-machine create --driver generic --generic-ip-address $1 --generic-ssh-user $2 $3
这里有三个参数,第一个是机器域名或 ip, 第二个是用户名,第三个是映射到本地对应的机器名
可以这样使用:
./add_remote.sh www.domain.com root docker0
经过实践证明,iso 设置为相对路径也可以正常工作