Hello Docker(八)——Docker Machine
一、Docker Machine简介
1、Docker Machine简介
Docker Machine是Docker官方编排(orchestration)项目之一,基于Go语言实现,用于在各种平台上配置和管理Docker主机,可以通过指定driver来定制虚拟机的实现原理。
(1)在指定节点上安装Docker Engine,配置其为Docker主机。
(2)集中管理所有Docker主机。
Github地址: https://github.com/docker/machine/
2、Docker Machine安装
docker-machine下载:wget https://mirrors.aliyun.com/docker-toolbox/linux/machine/0.15.0/docker-machine-Linux-x86_64
mv docker-machine-Linux-x86_64 /usr/local/bin/docker-machine
docker-machine权限修改:sudo chmod +x /usr/local/bin/docker-machine
docker-machine version
3、Docker Machine脚本部署
Docker Machine脚本包括docker-machine-wrapper.bash、docker-machine-prompt.bash、docker-machine.bash,下载地址:
https://github.com/docker/machine/tree/master/contrib/completion/bash
下载docker-machine-wrapper.bash、docker-machine-prompt.bash、docker-machine.bash至/etc/bash_completion.d目录。
$HOME/.bashrc 文件末尾,添加如下代码:
source /etc/bash_completion.d/docker-machine-wrapper.bash
source /etc/bash_completion.d/docker-machine-prompt.bash
source /etc/bash_completion.d/docker-machine.bash
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
4、Docker Machine支持平台
Docker Machine支持多种平台,如下:
(1)Linux操作系统。
(2)虚拟化平台-VirtualBox、VMware、Hyper-V。
(3)Openstack
(4)公有云-Amazon Web Services、Microsoft Azure、Google Compute Engine、Digital Ocean等
不同平台需要使用不同的驱动引擎,docker-machine create时使用-d或者--driver参数指定驱动引擎名称。
二、docker-machine常用命令
1、Docker管理命令
docker-machine create -d virtualBox DockerHost
创建Docker Hostdocker-machine kill DockerHost
强制关闭一个Docker Hostdocker-machine restart DockerHost
重启Docker Hostdocker-machine rm DockerHost
删除Docker Hostdocker-machine ssh DockerHost
SSH登录到Docker Hostdocker-machine scp DockerHost1:/xxx/xxx DockerHost2:/xxx/xxx
在不同的Docker Host间拷贝docker-machine start DockerHost
启动Docker Hostdocker-machine stop DockerHost
停止正在运行的Docker Hostdocker-machine upgrade DockerHost1 DockerHost2
升级 DockerHost1、DockerHost2的docker daemon到最新版本docker-machine use DockerHost
切换Docker Machine到访问DockerHost的环境
2、Docker状态查看命令
docker-machine active
显示当前的活动主机docker-machine config DockerHost
显示Docker Host的配置docker-machine env DockerHost
查看DockerHost的环境变量docker-machine inspect DockerHost
查看Docker Host的详细信息docker-machine ip DockerHost
查看Docker Host的IPdocker-machine ls
查看当前所有Docker Host信息docker-machine provision DockerHost
重新配置Docker Hostdocker-machine regenerate-certs Docker Host
为Docker Host重新生成证书docker-machine status DockerHost
查看Docker Host的状态docker-machine version
查看docker-machine版本
三、Docker部署
1、VirtualBox安装
VirtualBox下载:
https://www.virtualbox.org/wiki/Linux_Downloads
http://download.virtualbox.org/virtualbox/rpm/rhel/7/x86_64/
下载相应的VirtualBox安装包,使用RPM安装。
2、免密登录配置
ssh-keygen -t rsa
生成密钥ssh-copy-id 139.155.40.171
拷贝私钥到远程主机,实现免密登录
3、创建远程Docker Host
docker-machine create -d generic --generic-ssh-user=root --generic-ip-address=139.155.40.171 docker171
Docker Machine在执行create命令过程中生成了一系列保证安全性的秘钥和数字证书文件,用于Docker daemon和Docker客户端的TLS证书认证机制
,实现安全通信。本地和远程Docker主机各保存一份,本地保存在~/.docker/machine/machines/DockerHost,用于配置Docker客户端;远程Docker主机保存在/etc/docker,用于配置Docker daemon。
4、创建本地Docker Host
boot2docker是一个轻量级的Linux发行版,基于专门为运行docker容器而设计的Tiny Core Linux系统,完全从RAM运行,45MB左右,启动时间约5s。
boot2docker.iso下载:
https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso
拷贝boot2docker.iso到/root/.docker/machine/cachedocker-machine create --driver virtualBox --engine-registry-mirror https://1rqn7spi.mirror.aliyuncs.com docker100
5、配置环境变量
docker-machine env docker171
查看DockerHost所需环境变量eval $(docker-machine env docker171)
设置要连接远程Docker Host的环境变量eval "$(docker-machine env -u)"
取消要连接远程Docker Host的环境变量
6、运行Docker容器
docker-machine run -d Nginx
运行Nginx服务docker-machine ssh docker171
SSH登录远程Docker Host