Docker-machine是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。
1.在官网下载docker-machine-Linux-x86_64-1.15.0安装包
[root@foundation3 ~]# cd /usr/local/bin/
[root@foundation3 bin]# chmod +x docker-machine-Linux-x86_64-1.15.0
###给执行权限
[root@foundation3 bin]# ln -s docker-machine-Linux-x86_64-1.15.0 docker-machine
###做软链接
查看一下安装版本
2.因为docker-machine是通过ssh连接到其它主机的,所以要做ssh免密
[root@foundation3 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ce:b1:11:34:7d:15:8c:8d:e4:47:dc:2b:49:0e:f7:d4 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| o. ..B+o.|
| . ..o+++.E|
| . .* = .|
| . = o |
| S . |
| o + |
| + |
| |
| |
+-----------------+
[root@foundation3 .ssh]# ssh-copy-id 172.25.3.1
在server1上添加
[root@foundation3 .ssh]# ssh-copy-id 172.25.3.2
在server2上添加
[root@foundation3 .ssh]# ssh-copy-id 172.25.3.3
在server3上添加
###在这里我们添加3台目标主机
[root@foundation3 ~]#docker-machine create --driver generic --generic-ip-address=172.25.3.1 server1
[root@foundation3 ~]# docker-machine create --driver generic --generic-ip-address=172.25.3.2 server2
[root@foundation3 ~]# docker-machine create --driver generic --generic-ip-address=172.25.3.3 server3
注意:
create 命令本是要创建虚拟主机并安装 Docker,因为本例中的目标主机已经存在,所以仅安装 Docker。 –driver 的形式,主要用来指定使用什么驱动程序来创建目标主机。Docker Machine 支持在云服务器上创建主机,就是靠使用不同的驱动来实现了。本例中使用 generic 就可以了。接下来以 –generic 开头的参数主要是指定操作的目标主机,最后一个参数 server1是虚拟机的名称,Docker Machine 会用它来设置目标主机的名称。
检查安装结果
我们可以通过 Docker Machine 的 ls 命令查看当前可管理的主机列表:
测试通过docker-machine建立的效果
删掉之前建立的server2虚拟机节点
[root@foundation3 ~]# docker-machine rm server2
About to remove server2
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed server2
关掉server2上的docker,查看状态
再次创建时,它会自动开启docker
[root@foundation3 ~]# docker-machine create --driver generic --generic-ip-address=172.25.3.2 server2
去server2上,查看docker状态
查看目标主机的环境变量
[root@foundation3 ~]# docker-machine env server3
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://172.25.3.3:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/server3"
export DOCKER_MACHINE_NAME="server3"
# Run this command to configure your shell:
# eval $(docker-machine env server3)
根据提示我们执行eval $(docker-machine env server3)命令
连接到server3
[root@foundation3 ~]# eval $(docker-machine env server3)
[root@foundation3 ~]# docker version ###查看版本
接下来运行的docker命令操作的都是远程主机server3上的Docker daemon
为了区分本机的Docker daemon 操作
我们重新启动一个新的命令行终端,然后也执行 docker ps 命令:
可以看出两者的容器信息不同,server3里就没有容器