一、docker Machine简介

       Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。

      Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean。

     使用 docker-machine 命令,您可以启动,检查,停止和重新启动托管主机,也可以升级 Docker 客户端和守护程序,以及配置 Docker 客户端与您的主机进行通信。

    docker Machine为这些环境齐了一个统一的名字:provider 。对于某个特定的provider,docker Machine使用相应的drver安装和配置docker host,如下图所示:

    

二、环境部署:

    1.安装 docker machine

        基于Linux环境

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine

       基于mac环境

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine

      基于Windows环境

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  mkdir -p "$HOME/bin" &&
  curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" &&
  chmod +x "$HOME/bin/docker-machine.exe"

2.查看是否安装成功:

docker-machine version

     

3.安装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

   于是使用github上下载

           ①登录网址 https://github.com/docker/machine

           ②找到docker machine

          ③找到这个文件夹         (由于下载总会出错只能选择进入配置文件 复制)

          

         ④执行刷新

source /etc/bash_completion.d/docker-machine-prompt.bash

     4.添加shell

若要启用docker-machineshell提示符,添加$(__docker_machine_ps1)敬你的PS1置入~/.bashrc.

vim  ~/.bashrc

PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

          

   作用是设置docker-machine的命令提示符,不过要等到部署完其他两个host才能看出来效果。

5.创建无密登录并把秘钥传输到其他几台服务器

ssh-keygen -t rsa
ssh-copy-id -i 192.174.1.35
ssh-copy-id -i 192.174.1.36

6.允许root登录(删除注释)

vim /etc/ssh/sshd_config

              

         systemctl restart sshd (重启服务)

7.启用visiblepw

vim /etc/sudoers

Defaults   visiblepw  (去除!号)

8.部署host

docker-machine  create -d generic --generic-ip-address 192.174.1.35 host1

9.再次查看

两台主机变成

 

三、管理machine

  用docker-machine创建machine的过程简单,非常适合多主机环境。

  1. docker-machine   env  host1显示访问host1需要的所有环境变量

docker-machine env host1

     

   在host1中直接输入命令可以进入host2:

eval $(docker-machine env host2)

  2.验证:

[root@localhost ~ [host1]]# docker pull busybox

   machine服务器

          

 host主机:

        

3.退出

[root@localhost ~ [host1]]# docker-machine env -u

    

四、命令总结

config:查看当前激活状态 Docker 主机的连接信息。
creat:创建 Docker 主机
env:显示连接到某个主机需要的环境变量
inspect:	以 json 格式输出指定Docker的详细信息
ip:	获取指定 Docker 主机的地址
kill:	直接杀死指定的 Docker 主机
ls:	列出所有的管理主机
provision:	重新配置指定主机
regenerate-certs:	为某个主机重新生成 TLS 信息
restart:	重启指定的主机
rm:	删除某台 Docker 主机,对应的虚拟机也会被删除
ssh:	通过 SSH 连接到主机上,执行命令
scp:	在 Docker 主机之间以及 Docker 主机和本地主机之间通过 scp 远程复制数据
mount:	使用 SSHFS 从计算机装载或卸载目录
start:	启动一个指定的 Docker 主机,如果对象是个虚拟机,该虚拟机将被启动
status:	获取指定 Docker 主机的状态(包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error)等
stop:	停止一个指定的 Docker 主机
upgrade:	将一个指定主机的 Docker 版本更新为最新
url:	获取指定 Docker 主机的监听 URL
version:	显示 Docker Machine 的版本或者主机 Docker 版本
help:	显示帮助信息

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐