Docker三剑客之docker-machine(自动化部署docker)

一、docker-machine是什么?

什么是docker-machine,简单来说就是快速创建一个docker容器环境的,在多台阿里云ECS安装上docker,
可以使用相关的命令同时给多主机上安装docker软件 不需要用传统的方式一台台的安装 
还有就是你要在本地快读创建docker集群环境,我总不能一台一台创建虚拟机吧,所以docker-machine可以解决这个问题。

docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术2.docker-machine命令

 

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软件

docker images

 

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    

4

 

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三剑客之一

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值