一 什么是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-machine ls 命令来查看注册到本地管理列表中的 Docker 主机!
二 常用的命令
create参数说明
举一个例子
三 Docker和Docker Machine的区别
原理性的讲解
补充:后续考虑使用 Ansible 等 Dev Ops 工具来实现对 Docker 环境的自动化管理工作 。