Docker基础27--6.2 Docker三剑客之Machine

6.2 Docker三剑客之Machine

Machine项目是Docker官方的开源项目,负责实现对Docker运行环境进行安装和管理,特别在管理多个Docker环境时,使用Machine要比手动管理高效得多。

Machine的定位是“在本地或者云环境中创建Docker主机”。

6.2.1 安装machine

获取安装包

wget https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-linux-x86_64

将此文件赋予可执行权限

chmod a+x docker-machine-linux-x86_64

创建软链接到/usr/sbin

ln -s /root/dockerlab/machine/docker-machine-linux-x86_64 /usr/sbin/docker-machine

这样,我们就可以不管在任何路径下,都可以执行docker-machine命令了。

6.2.2生成第一台machine

首先确保本地主机和目标主机网络互通,并且本地主机可以免密登入到目标主机。

实验环境:

本地主机:192.168.0.197(就是安装了machine的那台主机)

目标主机1:192.168.0.198

目标主机2:192.168.0.199

step1:在本地主机上生成ssh密钥对,并将公钥复制到目标主机

ssh-keygen

 

这边所有的选项都不管,直接打回车就可以。

ssh-copy-id <dest server ip>

 

这边执行过程中会让你输入目标主机的用户密码(我们这边使用root用户)

这样,我们就可以在本地主机上免密码登入到目标主机了。

 

这里不用输入密码了。

Step2 在目标主机上放通2376/tcp端口

firewall-cmd --add-port=2376/tcp –permanent

firewall-cmd --add-port=2376/tcp

step3部署目标主机

docker-machine create -d generic --generic-ip-address=192.168.0.198 --generic-ssh-user=root machine198

命令注解:

create:创建一个docker主机

-d:驱动类型(generic|virtualbox

Generic:普通类型(通过SSH创建主机)

Virtualbox:启动一个virtualbox虚拟机,并部署docker

--generic-ip-adddress=:目标主机的ip

--generic-ssh-user=:目标主机的用户名

 

到目标主机上去看,发现docker 服务已经起来了。

 

注意红框中的内容,目标主机上的docker已开启了2376+tls,我们可以通过tls远程访问(详见5.6.1小节)

6.2.3 docker-machine常用命令

1)docker –machine ls      #列出所有docker主机

 

这两台主机就是我们刚刚用docker-machine create创建的两台主机

2)docker-machine active       #列出处于active的docker主机

激活状态意味着当前的DOCKER_HOST环境变量指向该主机。

 

目前还没有主机处于active状态

我们将machine198激活,实际上就是将docker-machine的一些环境变量设成machine198的内容

eval "$(docker-machine env machine198)"

 

 

可以看到,machine198已经处于active状态

这时候我们在docker-machine这台主机上操作docker,就相当于是在machine198这台主机的操作。

我们来验证一下:

我们在197(安装docker-machine)的主机上拉取一个busybox的镜像

 

然后到machine198这台主机上去看一下

 

发现是一样的。

  1. docker-machine config <host>     #显示docker主机的配置信息

docker-machine config machine198

 

  1. docker-machine config <host>      #显示连接到某个主机需要的环境变量。

 

注意红框内的提示,意思是用eval "$(docker-machine env machine198)"这个命令来配置你的shell,就是我们上面第二部分,讲docker-machine active时候用的这个命令。

这个命令相当于是执行了以下几条命令:

export DOCKER_TLS_VERIFY="1"

export DOCKER_HOST="tcp://192.168.0.198:2376"

export DOCKER_CERT_PATH="/root/.docker/machine/machines/machine198"

export DOCKER_MACHINE_NAME="machine198"

这个eval,相当于是把docker-machine env machine198这条命令获取的输出,转换成了命令。

这时候,我们看一下环境变量:

 

环境变量都已成变成machine198的参数了,把我们执行docker命令就相当是在machine198那台主机上执行是一样的。

6)docker-machine inpect <host>     #输出docker主机的详细信息

 

7)docker-machine ip <host>获取docker主机的IP

 

8)docker-machine kill<host>#杀死docker主机

 

Genric模式不支持,只有在虚拟模式下才支持此功能。

9)docker-machine restart <host>    #重启docker主机

 

相当于执行了一下shutdown –r now这个命令

10)docker-machine  ssh  <host>      #通过ssh登入docker主机

 

11)docker-machine status  <host>      #获取docker主机的状态

 

12)docker -H <ip>:2376 --tls <docker command>   #远程执行docker命令

 

这个功能和5.6.1小节中介绍的TLS方式docker远程管理,是一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮毅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值