在实际的工作环境中。我们需要运行多台容器,管理很不方便,还容易出错,针对这个问题,docker提供了docker machine。
Docker machine可以批量安装和配置docker host。
这里没有什么原理,实验环境 运行三台centos7,我们在一台服务器上安装docker machine,其他两台机器只需要配置好网络和ssh就可以了。
docker-machine 192.168.1.10
machine-10 192.168.1.20
machine-20 192.168.1.30
- 安装docker machine,这里直接提供下载地址
- 下载docker-machine
wget https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-Linux-x86_64
- 移动到/usr/local/bin下
mv docker-machine-Linux-x86_64 /usr/local/bin/docker-machine
- 给个执行权
chmod +x /usr/local/bin/docker-machine
- 查看是否安装成功
docker-machine version
- 为了更方便的使用docker-machine,我们安装一些脚本。因为直接下载可能会出问题,所以我们用复制的,先找到官方的文档,
https://github.com/docker/machine/
(1)
(2)
(3)把里面的三个脚本手动复制到服务器中,放到/etc/bash_ completion.d中。
source /etc/completion.d/docker-machine-prompt.bash
source /etc/completion.d/docker-machine-wrapper.bash
(4) 设置docker-machine的命令提示符,不过要等到部署完成后才能看到效果
在/root/.bashrc中最后一行添加
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
source /root/.bashrc
至此,docker-machine安装完成,下面来配置
- 在docker-machine上生成密钥对
ssh-keygen -t rsa #疯狂回车
ssh-copy-id 192.168.1.20
ssh-copy-id 192.168.1.30
- 在三台服务器上都配置/etc/sudoers和/etc/ssh/sshd_config
/etc/sudoers中Defaults !visiblepw 修改为Defaults visiblepw启用visiblepw
/etc/ssh/sshd_config中#PermitRootLogin yes修改为PermitRootLogin yes以允许root ssh登录
- 重启sshd
systemctl restart sshd
配置完毕。接下来就可以管理machine了
- 创建machine
docker-machine create -d generic --generic-ip-address=192.168.1.20 machine-10
docker-machine create -d generic --generic-ip-address=192.168.1.30 machine-20
创建时间有点长,耐心等一会
- 查看是否创建成功
docker-machine ls
3、登录machine-10,20
docker-machine use machine-10