实验过程中,所有的容器都运行在一个host上,实际环境中,docker容器在多个host上(集群)启动,运行,停止,销毁,相关容器间通过网络通信,无需关注在那个host 上启动。
对于(multi host)多主机应用环境,因为需要在每个主机上安装 配置 docker 环境, 那么该如何提高工作效率?
单个安装docker时需要步骤如下:
1, 配置docker源
2. 安装docker
那么是否有更高效的docker 安装方法,针对该问题,提出了解决方案: Docker Machine。
使用docker machine 可批量配置 docker host , 可支持的的主机包括,虚拟机,物理机或者云主机。
Docker Machine 支持在不同的环境下安装配置 docker host,包括:
1, 常规物理主机,linux 操作系统
2.,虚拟主机; virtualBox VMWare, Hyper-V
3, openstack
4, 公有云 - Amazon Web Services、Microsoft Azure、Google Compute Engine、Digital Ocean , 阿里云主机等
为区分不同主机介质,docker 为该些host 提供了同一的命名 provider, 特定的provider,Docker Machine 使用对应的driver 安装和配置 host, docker.
1. 安装docker Machine
具体参考文献在: https://docs.docker.com/machine/install-machine/
首先下载文件,赋值执行权限,并拷贝到 /usr/local/bin 下,当然现在 版本可能更新,进入网站查看具体更新版本
curl -L https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine
chmod +x /tmp/docker-machine
cp /tmp/docker-machine /usr/local/bin/docker-machine
检查是否安装成功
[root@yj152 docker]# docker-machine version
docker-machine version 0.16.0, build 702c267f
[root@yj152 docker]#
2. 安装 docker Machine 脚本
在目录 https://github.com/docker/machine/tree/master/contrib/completion/bash 下 下载如此三个文件,
下载到目录 /etc/bash_completion.d
下
install -y bash-completion &&
scripts=( docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash ); for i in "${scripts[@]}"; do wget https://raw.githubusercontent.com/docker/machine/v0.15.0/contrib/completion/bash/${i} -P /etc/bash_completion.d; done
然后在,$HOME/.bashrc 文件末尾,添加代码如下:用于 docker-machine 的命令行提示符,但要在docker host 部署完成,针对其他指令有效
1 # .bashrc
2
3 # User specific aliases and functions
4
5 alias rm='rm -i'
6 alias cp='cp -i'
7 alias mv='mv -i'
8
9 # Source global definitions
10 if [ -f /etc/bashrc ]; then
11 . /etc/bashrc
12 fi
13
14 source /etc/bash_completion.d/docker-machine-wrapper.bash
15 source /etc/bash_completion.d/docker-machine-prompt.bash
16 source /etc/bash_completion.d/docker-machine.bash
17
18 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
至此,docker machine 环境就绪。