什么是docker-machine,简单来说就是快速创建一个docker容器环境的,在多台阿里云ECS安装上docker,
可以使用相关的命令同时给多主机上安装docker软件 不需要用传统的方式一台台的安装
还有就是你要在本地快读创建docker集群环境,我总不能一台一台创建虚拟机吧,所以docker-machine可以解决这个问题。
docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术2.docker-machine命令
docker-machine active #显示当前的活动主机
docker-machine config #显示连接主机的配置
docker-machine create #创建一个主机
docker-machine env #设置当前的环境与哪个主机通信
docker-machine inspect #查看主机的详细信息
docker-machine ip 3查看主机的IP
docker-machine kill #强制关闭一个主机
docker-machine ls #看所有的主机信息
docker-machine provision #重新配置现在主机
docker-machine regenerate-certs #为主机重新生成证书
docker-machine restart #重启主机
docker-machine rm #删除主机
docker-machine ssh #以SSH的方式连接到主机上
docker-machine scp #远程复制
docker-machine status #查看主机的状态
docker-machine stop #停止一个正在运行的主机
docker-machine upgrade #升级主机的docker服务到最新版本
docker-machine version #查看docker-machine版本
准备4台主机:真机、server2、server3、server4
|主机信息|主机功能|
172.25.6.250 真机提供应用的服务端
|server2(172.25.6.2)|docker-machine管理端,装有docker服务|
|server3(172.25.6.3)|没有docker服务|
|server4(172.25.6.4)|没有docker服务|
实验准备:
在server2上 安装docker软件
yum install containerd.io-1.2.5-3.1.el7.x86_64.rpm dockerce18.09.6-3.el7.x86_64.rpm container-selinux-2.21-1.el7.noarch.rpm docker-ce-cli-18.09.6-3.el7.x86_64.rpm -y #安装docker软件以及解决依赖性问题
systemctl start docker #开启docker服务
systemctl enable docker #设置开机自启
打开火狐浏览器输入:https://developer.alihyun.com/mirror
1、点击容器
2、点击docker-toolbox
3、点击软件包所在的地址
4、选择linux系统
5、点击进入machine
6、选择最新的版本进行安装
7、选择docker-machine-Linux-x86_64 按右键选择复制地址
在server2上:
8、在server2上安装wget命令
yum install wget -y ## 安装wget命令
9、安装docker-machine软件
cd /usr/local/bin/ #进入/usr/local/bin/ 目录下 不然docker-machine相关命令不生效
wget http://mirrors.aliyun.com/docker-toolbox/linux/machine/0.15.0/docker-machine-Linux-x86_64 #安装docker-machine命令
10、docker-machine重命名 方便后续实验的命令调用
mv docker-machine-Linux-x86_64 docker-machine #docker-machine 重命名
chmod +x docker-machine #修改docker-machine 目录的权限
docker-machine --help #测试docker-machine命令是否生效
二、创建machine要求远程登录主机
1、创建免密
ssh-keygen # 创建免密
2、将密钥转目标主机
(1)、server3是上:
ssh-copy-id server3 ##将密钥转给server3主机
ssh server3 ##登录server3查看免密是否设置成功
(2)、server4是上:
ssh-copy-id server4 ##将密钥转给server4主机
ssh server4 ##登录server4查看免密是否设置成功
在真机上:
1、在 网页上查看docker-machine自动部署的脚本文件
2、下载自docker-machine动部署的见本文件,脚本文件要下到apache默认的发布目录下,否则在远程安装是系统无法读取到该文件
cd /var/www/html/ ##进入apache默认的发布目录下
curl -fsSL https://get.docker.com -o get-docker.sh #下载get-docker.sh文件的命令
3、将安装docker软件所需要的软件包放到指定的目录下
cd /var/www/html/pub/docker/docker-ce/ ##创建软件包存放的目录
createrepo docker-ce/ ##创建repodata软件仓库目录
3、在apache默认的发布目录下编辑yum源文件
cd /var/www/html/
vim docker-ce.repo ##编辑yum源文件
[docker]
name=docker-ce
baseurl=http://172.25.6.250/pub/docker/docker-ce
gpgcheck=0
4、编辑docker-machine动部署的脚本文件
vim get-docker.sh ##编辑脚本文件
在395行修改内容如下 :
yum_repo="http://172.25.6.250/docker-ce.repo"
5、在网页上检查是否可以访问到yum源文件中的内容
三、在server3、server4上修改主机ID
1、srever3上:
vim /etc/os-release ##进入主机信息文件
内容:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.5 (Maipo)"
ID="centos" ##将主机ID改为centos
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.5"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.5"
2、server4上:
四、server2上部署docker服务
(一)、查看部署相关节
1、查看相关策略信息
docker-machine create -d generic --hlep
--engine-install-url
--generic-ip-address
2、部署远程安装
docker-machine create -d generic --engine-install-url http://172.25.6.250/get-docker.sh --generic-ip-address 172.25.6.3 server3 ##在server3上远程安装docker服务
systemctl stop firewalld ##关闭防火墙
(安装出现报错关闭防火墙)
3、重新安装doccker服务
docker-machine create -d generic --engine-install-url http://172.25.6.250/get-docker.sh --generic-ip-address 172.25.6.3 aa8 ##将安装好后的server3 重命名为aa8
4、在server3上查看安装好docker后的情况
cd /etc/yum.repos.d/
cat docker-ce.repo
已经成功安装docker软件
5、进入 .docker目录下查看已经部署好的虚拟机节点
cd .docker/ ##进入./docker目录下
cd machine/
cd machines/
docker-machine rm aa1 #表示删除aa1这个节点
6、部署server4这节点
docker-machine create -d generic --engine-install-url http://172.25.6.250/get-docker.sh --generic-ip-address 172.25.6.4 server4
7、查看yum源是否成功的部署
cd /etc/yum.repos.d/
cat docker-ce.repo
docker软件已经安装好
在servre2上 查看节点连接信息
docker-machine ls
8、查看远程部署的方式是通过tls加密
cd /etc/systemd/system/docker.service.d/
cat 10-machine.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver devicemapper --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=generic
Environment=
(二)、管理系统登录部署的各个节点
1、在server2主机上登录server4节点
docker-machine env server4 #登录server的节点
eval $(docker-machine env server4) #进入server4的后端
2、关闭server2上的dokcre (如果没有登录server4的后端 按理说登录后不能在拉取镜像)、
systemctl stop docker ##关闭docker服务
docker info ##查看docker主机的信息
(在server2上显示的是server4主机的信息说明登录的是server4主机的后端)
在server4上 :
(1)、配置阿里云加速器
vim daemon.json
{
"registry-mirrors":["https://vo5twm71.mirror.aliyuncs.com"]
}
2、在server2上拉取镜像
docker pull busybox ## 拉取busybox镜像
3、在server4上查看镜像
证明了server2上登录的是server4的后端
docker images ## 查看镜像信息
总结:
以上就是利用docker-machine自动部署docker服务的整个过程
当在实际生产环境当中需要同时为docker集群中的每一个节点部署docker的时候就可以使用docker-machine这个工具
因此把docker-machine也叫做doicker三剑客之一