Docker三剑客之docker
Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。http://i2.运维网.com/images/blog/201812/27/b2814a93d65d72b090a6c3af15e4a682.png
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
# curl -L https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine
http://i2.运维网.com/images/blog/201812/27/d729886b8549bfaf30fe219ee8d4082a.png
2、添加执行权限,并复制到bin目录,作为全局命令
# chmod +x /tmp/docker-machine
# cp /tmp/docker-machine /usr/local/bin/docker-machine
3、查看版本
# docker-machine -version
docker-machine version 0.16.0, build 702c267f
4、安装命令补全工具
# 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
# chmod +x docker-machine.sh
http://i2.运维网.com/images/blog/201812/27/c999896b8fffad192e72bd933d069765.png
执行脚本,返回如下信息。
# ./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)
正在保存至: “/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” )
--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)
正在保存至: “/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” )
--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)
正在保存至: “/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” )
5、添加环境变量
# 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='[\u@\h \W$(__docker_machine_ps1)]\$ '
# source ~/.bashrc
6、设置ssh秘钥,免秘钥登陆
# ssh-keygen -t rsa
http://i2.运维网.com/images/blog/201812/27/7cbd7740c604fffeedc9bc37ccf5a2fc.png
7、分发秘钥
# ssh-copy-id root@192.168.70.129
主机132如法炮制分发秘钥
http://i2.运维网.com/images/blog/201812/27/dadf6beebfd838347cd2dd0a332e3e7b.png
8、免密代理
# ssh-agent bash
# ssh-add
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
9、测试免密
# ssh root@192.168.70.129 #无需输入密码即可跳转
Last login: Thu Dec 27 20:01:17 2018 from 192.168.70.1
# exit
登出
Connection to 192.168.70.129 closed.
10、开始创建docker节点主机
# docker-machine ls #可以看到我们没有任何一台 被管理的主机
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
# docker-machine create --driver generic --generic-ip-address=192.168.70.132 docker2
http://i2.运维网.com/images/blog/201812/27/8d3377345198fbed5b34ee7dcdb3cc4a.png
http://i2.运维网.com/images/blog/201812/27/f71a135b9dbb4bc867305465ff1c9c78.png
这样我们就通过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 获取帮助
页:
[1]