程序员Docker容器

docker容器技术学习笔记(8、Docker Machine)

2018-08-30  本文已影响16人  阳一yayi

管理多个docker host主机

用 Docker Machine 可以批量安装和配置 docker host,这个 host 可以是本地的虚拟机、物理机,也可以是公有云中的云主机。

Docker Machine 支持在不同的环境下安装配置 docker host,包括:
1、常规 Linux 操作系统
2、虚拟化平台 - VirtualBox、VMWare、Hyper-V
3、OpenStack
4、公有云 - Amazon Web Services、Microsoft Azure、Google Compute Engine、Digital Ocean 等

Docker Machine 为这些环境起了一个统一的名字:provider。对于某个特定的 provider,Docker Machine 使用相应的 driver 安装和配置 docker host,如下图所示:


实验环境

安装 Docker Machine

curl -L https://github.com/docker/machine/releases/download/v0.9.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

创建 Machine

“创建 Machine” 指的就是在 host 上安装和部署 docker。

创建 machine 要求能够无密码登录远程主机,所以需要先通过如下命令将 ssh key 拷贝到10.10.8.126。

执行 docker-machine create 命令创建 host1:

docker-machine create --driver generic --generic-ip-address=10.10.8.126 host1
因为我们是往普通的 Linux 中部署 docker,所以使用 `generic` driver,其他 driver 可以参考文档  https://docs.docker.com/machine/drivers/。
--generic-ip-address 指定目标系统的 IP,并命名为 host1

执行 docker-machine ls可以看到host1。使用同样的方法创建 host2:
docker-machine create --driver generic --generic-ip-address=10.10.8.107 host2

创建成功后 docker-machine ls 可以看到 host1 和 host2 都已经就绪:

# docker-machine ls
NAME    ACTIVE   DRIVER    STATE     URL                      SWARM   DOCKER        ERRORS
host1   -        generic   Running   tcp://10.10.8.126:2376           v18.06.1-ce   
host2   -        generic   Running   tcp://10.10.8.127:2376           v18.06.1-ce 

管理machine

用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境。除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理。其中最常用的就是无需登录到 machine 就能执行 docker 相关操作。

执行远程 docker 命令我们需要通过 -H 指定目标主机的连接字符串,比如:
docker -H tcp://10.10.8.126:2376 ps

Docker Machine 则让这个过程更简单。docker-machine env host1显示访问 host1 需要的所有环境变量。

根据提示,执行 eval $(docker-machine env host1)可以切换到host1

个有用的 docker-machine 子命令:

docker-machine upgrade 更新 machine 的 docker 到最新版本,可以批量执行;
docker-machine config 查看 machine 的 docker daemon 配置;
stop/start/restart 是对 machine 的操作系统操作,而 不是 stop/start/restart docker daemon。
docker-machine scp 可以在不同 machine 之间拷贝文件。
上一篇下一篇

猜你喜欢

热点阅读