Docker(十一)Docker三剑客之一Machine

一    什么是Docker Machine

       Docker Machine 是 Docker 官方三剑客项目之一 ,负责使用 Docker 容器的第 一步:在多种平台上快速安装和维护Docker运行环境 ,它支持多种平台 ,让用户可以在很短时间内在本地或云环境中搭建一套 Docker 主机集群

本章将介绍 Docker Machine 项目的具体情况,以及安装和使用的相关命令

二     Machine 简介

       Machine 项目是 Docker 官方的开源项目 ,负责实现对 Docker 运行环境进行安装和管理,特别在管理多个 Docker 环境时,使用 Mach ine 要比手动管理高效得多 。Machine 的定位是"在本地或者云环境中创建 Docker 主机" 。 其代码开源遵循 Apache-2.0 许可,Machine 项目主要由 Go 语言编写,用户可以在本地任意指定由 Machine 管理的 Docker主机,并对其进行操作 。

基本功能包括:

#(1)在指定节点或平台上安装 Docker 引擎,配置其为可使用的 Docker 环境;

#(2)集中管理(包括启动 、查看等)所安装的Docker环境 

说明:Machine 连接不同类型的操作平台是通过对应驱动来实现的,目前已经集成了包括AWS 、 IBM 、 Google ,以及 OpenStack 、 VirtualBox 、VSphere 等多种云平台的支持 。

三    安装Machine

强调:学习的第一手资料是来自官网

说明:本次安装以RHEL7为案例,其余的版本看对应脚本的信息即可!

阅读脚本可知,取巧

##(0)脚本的修改

# 说明1-->315行关于rhel版本退出,获取/etc/os-relesae中的ID做对比

# 修改387和389行docker的版本-->固定(直接修改为自己的repo源中的版本)

# 修改395行的yum_repo的指向

# 420行就是在远程安装的软件包!

##(1)前期的准备工作-->各个docker节点进行修改(这里server2、server3、server4)
vim /etc/yum.conf
gpgcheck=0 # 第8行(全局的)-->因为在脚本中的--nogpgckeck=0不起效果(是不是'-'是特殊字符的含义)
vim /etc/os-release
ID="centos" # 第三行-->原因(下载的脚本中-->对于RHEL版本则直接退出,为了成功则必须修改,之后可以重新修改即可)

#(2)安装二进制的可执行文件-->machine的管控命令(就是一个脚本)-->脚本的名字见名知意
cp docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine
#(2.5)给执行权限
chmod a+x /usr/local/bin/docker-machine
#(2.7)查看是否安装成功-->版本信息!
docker-machine -v 
#(3)运行-->去首页下载脚本(此脚本修改-->这里版本固定(docker),yum源修改,centos-->不是修改脚本,而是对应的虚拟机),ip改成自己的!
docker-machine create --driver generic --engine-install-url="http://172.25.24.250" --generic-ip-address=172.25.24.3 server3
#(4)如果失败-->删除-->修改重新
docker-machine rm server3
#(5)查看
docker-machine ls
#(6)切换
docker-machine env server2
#(7)切换环境
eval $(docker-machine env server2)
#(8)此时是进入server2对应的主机中
# docker images-->二者做对比!

核心说明

docker-machine create --help

# 连网的时候默认的下载脚本的路径(默认是下载这个脚本,其实就是一个首页-->index.html)

--engine-install-url "https://get.docker.com"

# 在浏览器中访问https://get.docker.com,其实就是一个sh脚本!
						

补充:脚本循环执行

for i in {2..4}
do 
docker-machine create --driver generic \
--engine-install-url="http://172.25.2.250" \
--generic-ip-address=172.25.2.$i docker$i
done

自动补全显示所在的位置

#############说明:不能显示在那台主机中(通过相关的补全命令)##################

#(1)确保Docker-machine shell显示所在的位置

vim ~/.bashrc
# PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
source ~/.bashrc

#(2)为了支持命令自动补全,还可以安装补全脚本-->注意所下载的要和docker-machine的版本一致

source  /etc/bash_completion.d/docker-machine* # 几个脚本起作用(要一个一个的进行)

说明:在各个节点安装Docker环境之后,默认是加密的,会在各个节点的/etc/docker生成相应的文件!

yum的补充

gpgkey=URL  //公钥地址,可以为本机(/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7   
或者为光盘的  CentOS\ 7\ x86_64/RPM-GPG-KEY-CentOS-7   
或者为远端镜像源的地址)

说明:docker各个安装节点安装的docker服务,可以看到有一个10.machine.conf的文件(理解它的作用)

补充

sed -i '8 c gpgcheck=0' /etc/yum.conf

sed -i '3 c ID="centos"' /etc/os-release

三   Docker Machine的创建流程

Docker(十一)Docker三剑客之一Machine_第1张图片

创建主机成功后,可以 通过 docker-machine ls 命令来查看注册到本地管理列表中的 Docker 主机!

二 常用的命令

Docker(十一)Docker三剑客之一Machine_第2张图片

create参数说明

Docker(十一)Docker三剑客之一Machine_第3张图片

Docker(十一)Docker三剑客之一Machine_第4张图片

举一个例子

Docker(十一)Docker三剑客之一Machine_第5张图片

三     Docker和Docker Machine的区别

原理性的讲解

补充:后续考虑使用 Ansible 等 Dev Ops 工具来实现对 Docker 环境的自动化管理工作 。

你可能感兴趣的:(Docker,machine)