继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕码人8056858
关注TA
已关注
手记 1092
粉丝 350
获赞 1320

管理多个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,如下图所示:


webp

实验环境

  • 操作系统:ubuntu

  • ip:10.10.8.125、10.10.8.126、10.10.8.127

  • 10.10.8.125 上安装 Docker Machine,然后通过 docker-machine 命令在其他两个 host 上部署 docker。

安装 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 lsNAME    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 之间拷贝文件。



作者:阳一yayi
链接:https://www.jianshu.com/p/5f6e4c6b2dbf


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP