Docker编排工具Fig介绍

本文讲的是Docker编排工具Fig介绍 【编者的话】Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用。本文详细介绍了Fig的安装以及使用。

什么是编排?
编排(译者注:Orchestration,翻译为编排)是指同时管理多个容器的行为。当你刚开始玩Docker的时候,你只需要操作一个容器。紧接着你学习了网络并得知把所有进程都放入同一个容器中并不合适,然后不知不觉你就发现自己已经建立了多容器的基础架构。你第一次尝试可能不会感到复杂,但是当使用两个或者三个容器的时候,你就会觉得很麻烦。手动连接容器、管理卷,很快你就乱了,应该有更好更实用的工具来做这件事。
Fig简介
这个更实用的工具称为 Fig 。Fig是 Orchard 的一个产品并很快成为自动化Docker容器编排一个事实标准,目前Fig已经被Docker公司收购并成为官方支持的解决方案。
安装Fig
Fig是一个Python Package,你可以使用以下命令来安装:
$ sudo pip install -U fig

就这么简单。如果不能工作,可以从 Fig的官方文档 中了解更多信息。
使用Fig
使用Fig来编排一个基础设施,你首先需要在YAML配置文件中描述它。描述语法很简单,和Docker有点类似。
下面是 Pagekit  CMS的Fig配置示例:
web:
image: ubermuda/pagekit
ports:
    - 80
links:
    - db:pagekit_db_1
volumes_from:
    - data
db:
image: orchardup/mysql
environment:
    MYSQL_ROOT_PASSWORD: changethis
    MYSQL_DATABASE: pagekit
data:
image: busybox
command: /bin/true
volumes:
    - /pagekit/storage
    - /pagekit/app/cache

这个配置文件定义了三个不同的容器。

web容器是面向web方面的容器,它基于 ubermuda/pagekit 镜像构建,你可以从GitHub上获取 ubermuda/pagekit 的源码,web容器会暴露80端口(通过 ports 参数),使用别名pagekit_db_1( links )连接到db容器,并且data容器的卷( volumes )也会被挂载到web容器。

从db容器中我们能看到在容器中定义环境变量是多么简单:只要使用 environment 配置即可。在示例中,我们在配置文件中定义了所有的值,但你也可以省略这些值,这样容器会从它的宿主机中获取。
db:
environment:
    MYSQL_ROOT_PASSWORD

所述的 MYSQL_ROOT_PASSWORD 环境变量被来自主机的同名环境变量填充。

最后,data容器通过 volumes 参数定义了即将使用的所有目录作为共享卷目录。

配置文件写完后,你只需要一个 fig up 命令即可启动你的基础设施。
$ fig up
Creating dockerpagekit_db_1...
...
Creating dockerpagekit_data_1...
Creating dockerpagekit_web_1...
...
Attaching to dockerpagekit_db_1, dockerpagekit_web_1
...
db_1  | 141110  4:14:02 [Note] /usr/sbin/mysqld: ready for connections.
db_1  | Version: '5.5.38-0ubuntu0.12.04.1-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
...
web_1 | 2014-11-10 04:15:20,750 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
web_1 | 2014-11-10 04:15:20,750 INFO success: php5-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

完整的启动日志有点太长了,所以我只截取了一部分。正如你所看到的,Fig创建了三个容器, dockerpagekit_db_1 可以连接到 dockerpagekit_web_1 ,正是我们想要的。

你可能还注意到有一个数据容器没有日志线,那是因为  /bin/true  命令无法正常输出。

现在你可以在另一个终端中运行 docker ps 命令来检查一切是否运行正常,同时,可是使用浏览器来确认web容器是否正常启动。(你首先需要确认映射端口,可以使用 docker ps docker port )。

说明
截至本文写作之时,Fig不支持远程编排,这意味着你只能在单台主机上编排一个基础设施。

原文链接:An introduction to Fig(翻译:吴锦晟 审校:李颖杰)

===============================================
译者介绍
吴锦晟 ,大连理工大学硕士研究生,就职于上海金桥信息股份有限公司技术中心。目前负责云计算、虚拟化、大数据及其信息可视化等方向的研究和应用。希望通过翻译技术文章于Dockone社区为Docker的步道做出微薄贡献。

原文发布时间为:2015-01-04
本文作者:吴锦晟
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:Docker编排工具Fig介绍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值