VirtualBox中使用Docker Machine来管理Docker主机
<p>大家好,今天我们学习在 VirtualBox 中使用 Docker Machine 来创建和管理 Docker 主机。Docker Machine 是一个可以帮助我们在电脑上、在云端、在数据中心内创建 Docker 主机的应用。它为根据用户的配置和需求创建服务器并在其上安装 Docker和客户端提供了一个轻松的解决方案。这个 API 可以用于在本地主机、或数据中心的虚拟机、或云端的实例提供 Docker 服务。Docker Machine 支持 Windows、OSX 和 Linux,并且是以一个独立的二进制文件包形式安装的。仍然使用(与现有 Docker 工具)相同的接口,我们就可以充分利用已经提供 Docker 基础框架的生态系统。只要一个命令,用户就能快速部署 Docker 容器。</p><p>本文列出一些简单的步骤用 Docker Machine 来部署 docker 容器。</p>
<p><strong>1. 安装 Docker Machine</strong><br />Docker Machine 完美支持所有 Linux 操作系统。首先我们需要从 github 下载最新版本的 Docker Machine,本文使用 curl 作为下载工具,Docker Machine 版本为 0.2.0。</p>
<p>64 位操作系统<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode113"><br /># curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine</div><br />32 位操作系统<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode114"><br /># curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386 > /usr/local/bin/docker-machine</div><br />下载完成后,找到 /usr/local/bin 目录下的 docker-machine 文件,让其可以执行:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode115"><br /># chmod +x /usr/local/bin/docker-machine</div><br />确认是否成功安装了 docker-machine,可以运行下面的命令,它会打印 Docker Machine 的版本信息:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode116"><br /># docker-machine -v</div><br /><img src="https://img.jbzj.com/file_images/article/201509/2015925120256926.png?201582512315" alt="" /><br />运行下面的命令,安装 Docker 客户端,以便于在我们自己的电脑止运行 Docker 命令:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode117"><br /># curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker<br /># chmod +x /usr/local/bin/docker</div><br /><strong>2. 创建 VirtualBox 虚拟机</strong><br />在 Linux 系统上安装完 Docker Machine 后,接下来我们可以安装 VirtualBox 虚拟机,运行下面的就可以了。--driver virtualbox 选项表示我们要在 VirtualBox 的虚拟机里面部署 docker,最后的参数“linux” 是虚拟机的名称。这个命令会下载 boot2docker iso,它是个基于 Tiny Core Linux 的轻量级发行版,自带 Docker 程序,然后 docker-machine 命令会创建一个 VirtualBox 虚拟机(LCTT译注:当然,我们也可以选择其他的虚拟机软件)来运行这个 boot2docker 系统。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode118"><br /># docker-machine create --driver virtualbox linux</div><br /><img src="https://img.jbzj.com/file_images/article/201509/2015925120328293.png?201582512335" alt="" /><br />测试下有没有成功运行 VirtualBox 和 Docker,运行命令:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode119"><br /># docker-machine ls</div><br /><img src="https://img.jbzj.com/file_images/article/201509/2015925120344553.png?201582512352" alt="" /><br />如果执行成功,我们可以看到在 ACTIVE 那列下面会出现一个星号“*”。</p>
<p><strong>3. 设置环境变量</strong><br />现在我们需要让 docker 与 docker-machine 通信,运行 docker-machine env <虚拟机名称> 来实现这个目的。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode120"><br /># eval "$(docker-machine env linux)"<br /># docker ps</div><br />这个命令会设置 TLS 认证的环境变量,每次重启机器或者重新打开一个会话都需要执行一下这个命令,我们可以看到它的输出内容:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode121"><br /># docker-machine env linux<br />export DOCKER_TLS_VERIFY=1<br />export DOCKER_CERT_PATH=/Users/<your username>/.docker/machine/machines/dev<br />export DOCKER_HOST=tcp://192.168.99.100:2376</div><br /><strong>4. 运行 Docker 容器</strong><br />完成配置后我们就可以在 VirtualBox 上运行 docker 容器了。测试一下,我们可以运行虚拟机 docker run busybox ,并在里面里执行 echo hello world 命令,我们可以看到容器的输出信息。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode122"><br /># docker run busybox echo hello world</div><br /><img src="https://img.jbzj.com/file_images/article/201509/2015925120401876.png?20158251248" alt="" /><br /><strong>5. 拿到 Docker 主机的 IP</strong><br />我们可以执行下面的命令获取运行 Docker 的主机的 IP 地址。我们可以看到在 Docker 主机的 IP 地址上的任何暴露出来的端口。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode123"><br /># docker-machine ip</div><br /><img src="https://img.jbzj.com/file_images/article/201509/2015925120416594.png?201582512423" alt="" /><br /><strong>6. 管理主机</strong><br />现在我们可以随心所欲地使用上述的 docker-machine 命令来不断创建主机了。</p>
<p>当你使用完 docker 时,可以运行 docker-machine stop 来停止所有主机,如果想开启所有主机,运行 docker-machine start。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode124"><br /># docker-machine stop<br /># docker-machine start</div><br />你也可以只停止或开启一台主机:<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode125"><br />$ docker-machine stop linux<br />$ docker-machine start linux</div></p>
<p><br /><strong>总结</strong><br />最后,我们使用 Docker Machine 成功在 VirtualBox 上创建并管理一台 Docker 主机。Docker Machine 确实能让用户快速地在不同的平台上部署 Docker 主机,就像我们这里部署在 VirtualBox 上一样。这个 virtualbox 驱动可以在本地机器上使用,也可以在数据中心的虚拟机上使用。Docker Machine 驱动除了支持本地的 VirtualBox 之外,还支持远端的 Digital Ocean、AWS、Azure、VMware 以及其它基础设施。</p>
頁:
[1]