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三剑客之应用machine,compose,swarm
企业运维实战--Docker三剑客一之docker-machine