与前面的章节一样,我们将开始创建一个用于实验的集群。
本章的所有命令都可以在07-api.sh(https://gist.github.com/vfarcic/ bab7f89f1cbd14f9895a9e0dc7293102)Gist里找到。
请进入拉取代码库的cloud-provisioning目录。由于在你上次使用之后我可能会更新它,所以请发送拉取请求。最后运行已经很熟悉的script/dm-swarm.sh,它将创建一个新的Swarm集群:
集群已启动并正在运行。
使用Docker Machine创建的VM基于Boot2Docker。这是专门为运行Docker容器而制作的轻量级Linux发行版。它完全在内存中运行,只有38 MB大小,启动时间大约为5秒。它基于Tiny Core Linux(http://tinycorelinux.net/)。与更流行的Linux发行版的区别是其大小,它被裁剪到最低限度。这种方式很合适我们,如果采用容器,我们其实并不需要那些在Ubuntu和RedHat等发行版中通常看到的大多数内核模块。
这与我们在使用容器时所追求的简约风格一致。前面已经讨论过使用Alpine作为容器使用的基本镜像的原因,主要是它的大小(只有几MB)。毕竟,为什么要把不需要的东西装到我们的容器里?这对主机操作系统来说也一样。在满足我们需求的前提下,越少越好。
这里有一个警告,Boot2Docker是专门为开发而设计并调整的。目前将它用于任何类型的生产负载都是令人沮丧的。那也无损于其价值,只是我们需要明白它擅长什么,不擅长什么。(www.xing528.com)
对Boot2Docker和Tiny Core Linux进行简短介绍的原因在接下来的部分。下面将会安装一些程序,并且需要知道我们正在使用的发行版的包管理工具。Tiny Core Linux使用tce-load。
在前面的章节中,我们在操作系统(MacOS、Linux或Windows)中执行了大部分命令。这一次,我们将在Docker Machine虚拟机中运行它们。我们将会使用jq(https://stedolan.github.io/jq/),它用于格式化从API接收的JSON输出。jq在大多数平台上都可使用,但我认为通过将你限制在虚拟机内可以避免可能出现的问题。第二个也是最重要的原因在于选择通过机器上可用的Docker套接字向API发送请求。
事不宜迟,下面将继续安装curl和jq:
进入swarm-1机器并使用tce-load来安装curl和wget。由于jq不能通过tce-load安装,所以使用wget来下载二进制文件。最后将jq移动到bin目录并添加执行权限。
现在准备开始探索Docker Remote API。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。