Docker学习(19)——Docker三剑客之docker-machine(自动化部署docker)

血红的双手。 提交于 2019-11-26 17:42:06

1.docker-machine是什么?

什么是docker-machine,简单来说就是给你快速创建一个docker容器环境的,怎么说呢,
如果你要给100台阿里云ECS安装上docker,传统方式就是你一台一台ssh上去安装,
但是有了docker-machine就不一样了,你可以快速给100台ecs安装上docker,怎么快速法呢,你看完这文章就知道了。
还有就是你要在本地快读创建docker集群环境,我总不能一台一台创建虚拟机吧,所以docker-machine可以解决这个问题。

docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术
甚至可以通过指定driver来定制虚拟机的实现原理(一般是virtualbox)
Docker 与 Docker Machine 的区别
Docker 是一个 Client-Server 架构的应用,Docker是大家对Docker Engine简称
Docker包括以下三个部分

Docker daemon
一套与 Docker daemon 交互的 REST API
一个命令行客户端

下图很清晰的展示了它们之间的关系

在这里插入图片描述
Docker Machine 则是一个安装和管理 Docker 的工具。它有自己的命令行工具:docker-machine

2.docker-machine命令

先docker-machine --help 查看一下所有命令

docker-machine active 显示当前的活动主机
docker-machine config 显示连接主机的配置
docker-machine create 创建一个主机
docker-machine env 设置当前的环境与哪个主机通信
docker-machine inspect 查看主机的详细信息
docker-machine ip 查看主机的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版本

3.搭建实验环境

三台rhel7.3的虚拟机server1、server2、server3
|主机信息|主机功能|
|server1(172.25.2.1)|docker-machine管理端,装有docker服务|
|server2(172.25.2.2)|没有docker服务|
|server3(172.25.2.3)|没有docker服务|

(1)在真机当中创建三个快照
在这里插入图片描述
(2)导入镜像,开启三台虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)用真机连接三台虚拟机server1、server2、server3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)在真机上配置搭建共享yum源,开启apache服务,关闭防火墙
在这里插入图片描述
(5)刚开始三台虚拟机上面都没有docker服务,实验环境干干净净
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(6)给server1配置共享yum源文件,安装docker服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.在server1上面利用docker-machine给server2和server3自动部署docker服务

Docker Machine 创建 Docker 主机
Docker 一个官方工具 Docker Machine(也是 Docker 三剑客之一)
其作用就是快速帮助我们搭建 Docker 主机环境,比如我们要使用 Docker Swarm
就必须有很多的 Docker 主机来进行操作,Docker Machine 就是最理想的工具

(1)在server1上面部署docker-machine

首先下载二进制文件
wget https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-Linux-x86_64
我是下载到真机上面,然后从真机发送给虚拟机server1

在这里插入图片描述
在这里插入图片描述

chmod +x docker-machine-Linux-x86_64 接着修改可执行权限
mv  docker-machine-Linux-x86_64    /usr/local/bin/ 移动二进制文件到/usr/local/bin/目录下
mv  /usr/local/bin/docker-machine-Linux-x86_64    /usr/local/bin/docker-machine命名一个短一点的名字
docker-machine -v 最后在命令行下测试下是不是可以使用了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)查看各个节点的解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)设置server1免密连接server2和server3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)使真机可以上网,从互联网上拉取自动部署doaker的脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)将拉取下来的脚本放到真机的apache共享目录下面并且作出修改
在这里插入图片描述
给server2和server3安装docker的时候要使用真机的共享yum源
在这里插入图片描述
安装docker的版本要和yum源里面的版本一致
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在浏览器里面输入真机的ip查看这个脚本
在这里插入图片描述
(6)server1给server2自动部署docker
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(7)server1给server3自动部署docker
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(8)此时自动部署已经完成,现在来验证部署中安装的一些东西

目前从server1切换到server2和server3只有docker命令才会生效,其他的都不会生效
而且切换进去的命令提示符的特征不够明显
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(9)现在来解决特征不明显的问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以发现此时已经实现了server1明显的连接server2和server3

(10)如果server1想完全控制server2和server3就使用ssh命令
在这里插入图片描述
在这里插入图片描述
(11)可以看出利用docker-machine自动部署docker的时候会自动生成证书,加密
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结一下:
以上就是利用docker-machine自动部署docker服务的整个过程
当在实际生产环境当中需要同时为docker集群中的每一个节点部署docker的时候就可以使用docker-machine这个工具
因此把docker-machine也叫做doicker三剑客之一

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!