运维开发网

Hello Docker(八)——Docker Machine

运维开发网 https://www.qedev.com 2020-10-25 13:41 出处:51CTO 作者:天山老妖S
HelloDocker(八)——DockerMachine一、DockerMachine简介1、DockerMachine简介DockerMachine是Docker官方编排(Orchestration)项目之一,基于Go语言实现,用于在各种平台上配置和管理Docker主机,可以通过指定driver来定制虚拟机的实现原理。DockerMachine功能如下:(1)在指定节点上安装DockerEng

Hello Docker(八)——Docker Machine

一、Docker Machine简介

1、Docker Machine简介

Docker Machine是Docker官方编排(Orchestration)项目之一,基于Go语言实现,用于在各种平台上配置和管理Docker主机,可以通过指定driver来定制虚拟机的实现原理。

Hello Docker(八)——Docker Machine

Docker Machine功能如下:

(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='[\[email protected]\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 Host

docker-machine kill DockerHost

强制关闭一个Docker Host

docker-machine restart DockerHost

重启Docker Host

docker-machine rm DockerHost

删除Docker Host

docker-machine ssh DockerHost

SSH登录到Docker Host

docker-machine scp DockerHost1:/xxx/xxx DockerHost2:/xxx/xxx

在不同的Docker Host间拷贝

docker-machine start DockerHost

启动Docker Host

docker-machine stop DockerHost

停止正在运行的Docker Host

docker-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的IP

docker-machine ls

查看当前所有Docker Host信息

docker-machine provision DockerHost

重新配置Docker Host

docker-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/cache

docker-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

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号