Docker学习(八)docker-machine 实现 自动化部署docker

1.docker-machine是什么

在这里插入图片描述1.简单来说它就是用来快速创建一个docker容器环境的,它是一个安装和管理 Docker 的工具。它有自己的命令行工具:docker-machine

2.Docker 是一个 Client-Server 架构的应用,Docker是大家对Docker Engine简称,Docker包括以下三个部分

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

在这里插入图片描述

2.docker-machine的常用命令

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.实验过程

实验环境:

rhel 7.6的虚拟机

172.25.2.2. ser1 docker-machine管理端,装有docker服务
172.25.2.3 ser2 没有docker服务
172.25.2.4 ser3 没有docker服务
172.25.2.250 真机 提供第三方软件仓库
关闭主机的防火墙和selinux

真机配置第三方软件仓库并共享

在这里插入图片描述
1.在apache的默认发布目录下,创建软件包的目录
在这里插入图片描述
2.创建依赖
在这里插入图片描述
3.编辑yum仓库文件,放在apache的默认发布目录下
在这里插入图片描述
4.
在这里插入图片描述
编辑yum源的指向
在这里插入图片描述
5.在浏览器中访问到第三方软件包
在这里插入图片描述
6.
在这里插入图片描述

ser1中

1.在ser1上下载docker-machine
在这里插入图片描述
2.
在这里插入图片描述
在这里插入图片描述
3.docker-machine安装成功
在这里插入图片描述
4.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.设置ser1的对ser2和ser3的免密登录
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述6.将ser3和ser2中的系统版本改为centos,因为前面的脚本指定的如果系统版本是rhel就会退出。

在这里插入图片描述在这里插入图片描述7.对ser3部署Docker服务时,发现出现报错
在这里插入图片描述8.经排查,发现是真机的软件包的权限不够
在这里插入图片描述将软件包的权限改为644
在这里插入图片描述9.重新在ser1中,为ser3创建docker
在这里插入图片描述10.在ser3中发现,自动配置上了repo文件
在这里插入图片描述在这里插入图片描述11.发现ser3中docker已经启动,并且获得了端口2376
在这里插入图片描述12.在ser2中部署docker
在这里插入图片描述在这里插入图片描述在这里插入图片描述13.
在这里插入图片描述14.
在这里插入图片描述

在machine主机上操作远程主机的方式1

在这里插入图片描述2.
在这里插入图片描述3.
在这里插入图片描述4.
在这里插入图片描述在这里插入图片描述在这里插入图片描述5.
在这里插入图片描述在这里插入图片描述6.ser2要能有外部网络
在这里插入图片描述在这里插入图片描述在这里插入图片描述7.在ser1上操作ser2让运行容器
在这里插入图片描述在这里插入图片描述

在machine主机上操作远程主机的方式2

在这里插入图片描述2.
在这里插入图片描述在这里插入图片描述3.操作远程主机3
在这里插入图片描述在这里插入图片描述4.
在这里插入图片描述在这里插入图片描述在这里插入图片描述Linux系统里的env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令
下面来比较一下 setenvexport命令 的异同:

set命令显示当前shell的变量,包括当前用户的变量;
env命令显示当前用户的变量;
export命令显示当前导出成用户变量的shell变量。

每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC,BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。

现在来解决特征不明显的问题

在machine主机上操作远程主机的方式3

此方式实在方法2的基础上完成的.

1.点击bash
在这里插入图片描述将这三个脚本文件下载到ser1中
在这里插入图片描述下载的路径必须是/etc/bash_completion.d/
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述source一下,将设置在文件中的配置信息马上生效。如果你不source修改的文件的话,只有等下次重启后才能生效
在这里插入图片描述在这里插入图片描述在这里插入图片描述配置.bashrc配置文件,在你的账号登录系统的时候,系统就会自动读取的,不是用来执行的
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
补充:
eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要zhidao进行两次扫描的变量有时候被称为复杂变量

命令格式:eval [参数]

补充说明:
eval可读取一连串的参数,然后再依参数本身的特性来执行。参数不限数目,彼此之间用分号分开。

用法示例:
将字符串变量s的值作为命令执行

s="ls"
eval $s 

如何指定需要安装的docker的版本

1.编辑真机的get-dcoker脚本,里面写的内容应该是自己指定的docker的版本
在这里插入图片描述在这里插入图片描述2.
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述可以看出利用docker-machine自动部署docker的时候会自动生成证书,加密
在这里插入图片描述在这里插入图片描述在这里插入图片描述5.
在这里插入图片描述6.
在这里插入图片描述在这里插入图片描述总结:
当在实际生产环境当中需要同时为docker集群中的每一个节点部署docker的时候可以使用docker-machine工具来实现快速的,远程的部署。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值