简介
Docker Machine是一个可以在多个平台上快速安装和维护docker运行环境的工具,并且支持多个平台,允许用户在很短的时间内在本地或云端环境中构建docker主机集群。
使用 docker-machine 命令,您可以启动、查看、停止和重新启动托管的 docker。您还可以升级Docker客户端和守护进程,并配置docker客户端与主机通信。
Docker Machine是一个用于在虚拟主机上安装Docker Engine并使用docker-machine命令来管理这些虚拟主机的工具。
下载与配置
准备两台服务器
如果你没有服务器,可以向阿里巴巴、华为等ecs厂商租用一段时间。买两个太贵了当然,如果电脑配置高的话,可以直接使用vm ware或者virtualbox搭建几个虚拟机来使用。
这是利用虚拟机软件虚拟出两台ubuntu机器。
首先需要在一台机器上安装docker和ssh,另一台按转发ssh(虚拟的时ubuntu20.04)在安装界面可以直接选中docker和ssh在完成系统的安装后就具有两个软件。
虚拟机的IP需要配置为静态。如果安装时没有配置,则需要重新配置。
安装
wget https://mirrors.aliyun.com/docker-toolbox/linux/machine/0.10.0/docker-machine-Linux-x86_64
使用该命令安装的是docker-machine
的的二进制文件,如下
# 给文件授权
chmod +x docker-machine
为该二进制文件自定义命令,并配置环境变量
sudo vim /etc/profile
alias docker-machine='/home/xwh/docker-machine/docker-machine-Linux-x86_64'
sudo source /etc/profile
如果使用以下命令出现docker-machine版本,则说明配置成功:
docker-machine -v
配置两台机器ssh免密登录参考docker-machine安装
在主机(即docker)和安装了docker-machine的机器上,使用命令在节点机器上安装docker。
Error detecting OS: Too many retries waiting for SSH to be available. Last error: Maximum number of retries (60) exceeded
出现上述问题的原因是访问权限不足。这里创建root用户并切换到root用户:
# 创建root用户命令
sudo passwd root
需要输入三次密码,第一是sudo需要的密码,第二三次是确认root用户的密码。
然后使用su [用户名]
切换用户,切换到root用户
切换用户后环境变量命令可能会失败。重启一下环境变量就可以了。
切换root用户后,ssh无法切换。原因是ssh默认不允许root远程登录。
此时先使用普通用户ssh登录,检查是否是ssh配置问题,如果普通用户能登录就说明只是root的权限问题。
编辑ssh_config文件配置允许远程访问PermitRootLogin yes
vi /etc/ssh/sshd_config
重启ssh服务service sshd restart
如下所示root账户也可以成功切换了。
但是现在还需要输密码才能切换,接下来配置免密登录,是用公钥实现:
ssh-keygen
一直按ENTER
键
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.42.129
将ip改为你的第二个服务的ip
执行后会自动登录到第二台主机,之后切换也不需要密码了。
使用
exit
命令推出
在主节点远程创建节点的主机
docker-machine create --driver generic --generic-ip-address 172.25.2.2 node-client
--driver:要在目标主机创建docker的驱动程序
--generic-ip-address:目标地址
<machine>:创建的主机的名称
docker-machine create -h:查看帮助
这样就可以通过docker-machine
在配置了ssh的节点上安装dockr服务。