Docker三剑客之docker-machine

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker三剑客之docker-machine相关的知识,希望对你有一定的参考价值。

Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。
技术分享图片
Docker -Machine支持在不同环境下安装配置docker host,包括:
1.常规Linux操作系统;
2.虚拟化平台-VirtualBox,VMware,Hyper-V
3.Openstack
4.公有云-Amazon Web Services,Microsoft Azure,Google Compute Engine,Digital Ocean等

环境介绍:

主机 ip地址 角色
Centos7 192.168.70.128 docker-machine
Centos7 192.168.70.129 install-node1
Centos7 192.168.70.132 install-node2

docker-machine 安装官方https://docs.docker.com/machine/install-machine/#install-machine-directly

1、下载docker-machine

[[email protected] ~]# curl -L https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine

技术分享图片
2、添加执行权限,并复制到bin目录,作为全局命令

[[email protected] /]# chmod +x /tmp/docker-machine
[[email protected] /]# cp /tmp/docker-machine /usr/local/bin/docker-machine

3、查看版本

[[email protected] /]# docker-machine -version
docker-machine version 0.16.0, build 702c267f

4、安装命令补全工具

[[email protected] /]# vim docker-machine.sh

#!/bin/bash
base=https://raw.githubusercontent.com/docker/machine/v0.16.0
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
  sudo wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
done

[[email protected] /]# chmod +x docker-machine.sh

技术分享图片

执行脚本,返回如下信息。

[[email protected] /]# ./docker-machine.sh

--2018-12-27 20:17:36--  https://raw.githubusercontent.com/docker/machine/v0.16.0/contrib/completion/bash/docker-machine-prompt.bash
正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.72.133
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.72.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1469 (1.4K) [text/plain]
正在保存至: “/etc/bash_completion.d/docker-machine-prompt.bash”

100%[==========================================================================>] 1,469       --.-K/s 用时 0s      

2018-12-27 20:17:40 (190 MB/s) - 已保存 “/etc/bash_completion.d/docker-machine-prompt.bash” [1469/1469])

--2018-12-27 20:17:40--  https://raw.githubusercontent.com/docker/machine/v0.16.0/contrib/completion/bash/docker-machine-wrapper.bash
正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.72.133
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.72.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1525 (1.5K) [text/plain]
正在保存至: “/etc/bash_completion.d/docker-machine-wrapper.bash”

100%[==========================================================================>] 1,525       --.-K/s 用时 0s      

2018-12-27 20:17:44 (179 MB/s) - 已保存 “/etc/bash_completion.d/docker-machine-wrapper.bash” [1525/1525])

--2018-12-27 20:17:44--  https://raw.githubusercontent.com/docker/machine/v0.16.0/contrib/completion/bash/docker-machine.bash
正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.72.133
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.72.133|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:12211 (12K) [text/plain]
正在保存至: “/etc/bash_completion.d/docker-machine.bash”

100%[==========================================================================>] 12,211      --.-K/s 用时 0.002s  

2018-12-27 20:17:47 (5.12 MB/s) - 已保存 “/etc/bash_completion.d/docker-machine.bash” [12211/12211])

5、添加环境变量

[[email protected] /]# vim ~/.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)]$ ‘

[[email protected] /]# source ~/.bashrc

6、设置ssh秘钥,免秘钥登陆

[[email protected] /]# ssh-keygen -t rsa

技术分享图片

7、分发秘钥

[[email protected] /]# ssh-copy-id [email protected]
主机132如法炮制分发秘钥

技术分享图片

8、免密代理

[[email protected] /]# ssh-agent bash
[[email protected] /]# ssh-add
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

9、测试免密

[[email protected] /]# ssh [email protected] #无需输入密码即可跳转
Last login: Thu Dec 27 20:01:17 2018 from 192.168.70.1
[[email protected] ~]# exit
登出
Connection to 192.168.70.129 closed.

10、开始创建docker节点主机

[[email protected] /]# docker-machine ls #可以看到我们没有任何一台 被管理的主机
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS


[[email protected] /]# docker-machine create --driver generic --generic-ip-address=192.168.70.132 docker2

技术分享图片
技术分享图片

这样我们就通过docker-machine创建好了我们的docker主机了,以下是一些常用命令。

docker-machine的一些命令操作
active 查看当前激活状态的docker主机
config 查看到激活状态docker主机的连接信息
create 创建一个docker主机
evn 显示连接到docker主机的详细信息
inspect 以json格式输出指定docker主机的详细信息
ip 获取指定docker主机地址
kill 直接杀死指定docker主机
ls 列出所有管理主机
regenerate-certs 为某个主机重新生成TLS认证信息
restart 重启指定docker主机
rm 删除某台docker主机,对应虚拟机会被删除
scp 在docker知己知己和docker主机和本地直接通过scp来远程复制文件
ssh 通过ssh连接到主机上,执行命令
start 启动一个指定docker主机。如果对象是虚拟机,该虚拟机会被启动
status 获取指定docker主机状态
stop 停止一个docker主机
upgrade 将指定主机docker版本更新到最新
url 获取指定docker主机的监听url
help 获取帮助

以上是关于Docker三剑客之docker-machine的主要内容,如果未能解决你的问题,请参考以下文章

容器技术|Docker三剑客之docker-machine

docker三剑客之应用machine,compose,swarm

企业运维实战--Docker三剑客一之docker-machine

docker三剑客 docker-machine安装&管理swarm

Docker 三剑客之Docker Swarm

Docker 三剑客之 Docker Swarm