使用 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 的版本信息
THE END
二维码
打赏
文章目录
关闭
共有 0 条评论