使用 Docker-Machine 批量给多台主机安装 Docker Engine

假如你现在手里有100台物理机,都需要安装上docker,传统方式就是你一台一台ssh上去安装,但是有了 docker-machine 你就可以在一台机器上快速的给这些机器批量安装 docker

安装脚本

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

# 查看是否安装成功
docker-machine -v

主机互通

各主机需要SSH能免密访问,在 docker-machine 的主机上执行授权访问操作。关于 SSH 详细说明可参考之前的文章:SSH 实现多主机间互相免密登录

# 生成秘钥对,一直点回车
ssh-keygen
# 将公钥传输给对应主机,需要输入root密码
ssh-copy-id root@192.168.128.101
ssh-copy id root@192.168.128.102
ssh-copy-id root@192.168.128.103

远程安装

所有要部署的主机需要开放端口 2376(Docker API),否则在 docker-machine 主机上看不到相应主机的 docker 状态,如果需要管理 docker swarm 则还需要开放端口 3376(Swarm)

# 添加 Docker API 端口到防火墙规则,并永久生效
firewall-cmd --zone=public --add-port=2376/tcp --permanent
# 重新加载防火墙规则,使更改生效
firewall-cmd --reload

示例给以下3台主机安装部署 docker,命令中 -D  用于输出执行日志

# 主机1
docker-machine -D create --driver generic --generic-ip-address=192.168.128.101 worker1
# 主机2
docker-machine -D create --driver generic --generic-ip-address=192.168.128.102 worker2
# 主机3
docker-machine -D create --driver generic --generic-ip-address=192.168.128.103 worker3
如果你想在 docker-machine 机器上操作远程主机上的 docker 命令,比如 docker run 运行一个容器,则需要在 docker-machine 主机上也安装上 docker 。然后通过下述命令,切换要被控制的主机。
# 查看管理的主机列表
docker-machine ls
# 查看 worker1 主机的环境变量
docker-machine env worker1
# 应用环境变量(将所有 docker 命令应用到被控主机)
eval $(docker-machine env worker1)

常用命令

docker-machine 常用命令大全,详细使用示例参考:腾讯云-开发者社区

Commands:
  active                打印当前活跃的机器名称
  config                打印机器连接配置信息
  create                创建一台新的机器,通过 --driver 指示提供商
  env                   显示设置 Docker 客户端环境的命令
  inspect               检查有关机器的详细信息
  ls                    列出所有已创建的机器
  ip                    获取虚拟机的 IP 地址
  kill                  强制停止一个运行中的机器
  logs                  打印虚拟机的日志输出
  provision             在已存在的机器上重新运行初始化
  regenerate-certs      为虚拟机重新生成 TLS 证书
  restart               重启一个机器
  rm                    删除一个机器
  ssh                   通过 SSH 进入机器
  scp                   在本地与机器、机器与机器、机器与本地,之间复制文件
  start                 启动一台机器
  status                获取机器的状态
  stop                  停止一台机器
  upgrade               升级机器上的 Docker
  url                   获取机器的 URL
  version               显示 Docker Machine 的版本信息
分享到:
本文链接:https://blog.renzicu.com/2024/01/484.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录