为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Docker

管理多个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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消