对于 Docker Machine 来说,术语 Machine
就是运行 docker daemon 的主机。“创建 Machine” 指的就是在 host 上安装和部署 docker。先执行 docker-machine ls
查看一下当前的 machine:
如我们所料,当前还没有 machine,接下来我们创建第一个 machine: host1 - 192.168.56.104。
创建 machine 要求能够无密码登录远程主机,所以需要先通过如下命令将 ssh key 拷贝到 192.168.56.104:
ssh-copy-id 192.168.56.104
一切准备就绪,执行 docker-machine create
命令创建 host1:
docker-machine create --driver generic --generic-ip-address=192.168.56.104 host1
参数说明:
-d driver #指定基于什么虚拟化技术的驱动
--generic-ip-address #指定要安装宿主机的IP,这里是本地的IP。也就是说,你也可以给别的主机装Docker,前提是SSH root用户免交互登录或私钥认证。
--generic-ssh-user #SSH的用户
--generic-key-key #指定私钥来实现免交互登录
等待数分钟后,docker就安装成功了,可以通过docker命令管理容器了。如果安装失败多尝试两次!
--engine-registry-mirror http://×××××.m.daocloud.io #用来加速安装machine(不好用)
因为我们是往普通的 Linux 中部署 docker,所以使用 generic
driver,其他 driver 可以参考文档 https://docs.docker.com/machine/drivers/。
--generic-ip-address
指定目标系统的 IP,并命名为 host1
。命令执行过程如下:
① 通过 ssh 登录到远程主机。 ② 安装 docker。 ③ 拷贝证书。 ④ 配置 docker daemon。 ⑤ 启动 docker。
再次执行 docker-machine ls
:
已经能看到 host1 了。 我们可以登录到 host1 查看 docker daemon 的具体配置 /etc/systemd/system/docker.service。
-
-H tcp://0.0.0.0:2376
使 docker daemon 接受远程连接。 -
--tls*
对远程连接启用安全认证和加密。
同时我们也看到 hostname 已经设置为 host1
:
使用同样的方法创建 host2:
docker-machine create --driver generic --generic-ip-address=192.168.56.105 host2
创建成功后 docker-machine ls
可以看到 host1 和 host2 都已经就绪:
当前当前环境如下: