docker-machine(部署)

  • Post author:
  • Post category:其他


Docker-machine是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。

安装 Docker Machine

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 root@foundation3.ilt.example.com
The key's randomart image is:
+--[ RSA 2048]----+
|        o. ..B+o.|
|       . ..o+++.E|
|        .  .* = .|
|         .   = o |
|        S     .  |
|       o +       |
|        +        |
|                 |
|                 |
+-----------------+

查看钥匙已生成

这里写图片描述

把本地用户生成的key,添加到目标主机上

[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.安装命令:

###在这里我们添加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里就没有容器



版权声明:本文为xbw_linux123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。