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,你可以使用以下命令来安装:
就这么简单。如果不能工作,可以从Fig的官方文档中了解更多信息。
使用Fig
使用Fig来编排一个基础设施,你首先需要在YAML配置文件中描述它。描述语法很简单,和Docker有点类似。
下面是Pagekit CMS的Fig配置示例:
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配置即可。在示例中,我们在配置文件中定义了所有的值,但你也可以省略这些值,这样容器会从它的宿主机中获取。
environment:
MYSQL_ROOT_PASSWORD
所述的MYSQL_ROOT_PASSWORD环境变量被来自主机的同名环境变量填充。
最后,data容器通过volumes参数定义了即将使用的所有目录作为共享卷目录。
配置文件写完后,你只需要一个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不支持远程编排,这意味着你只能在单台主机上编排一个基础设施。
相关文章

轻松玩转虚拟机套娃! 在Hyper-V中开启嵌套虚拟化的技巧
有办法在虚拟机中创建虚拟机吗?答案是肯定的,在虚拟机中运行虚拟机是可能的,我们将其称为嵌套虚拟化,下面我们就来看看详细操作方法2025-02-19
龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)
本文主要介绍了安装和配置AnolisOS 23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,具有一定的参考价值,感兴趣的可以了解一下2025-01-20
在处理文件拷贝复制到VMware虚拟机中的任务时,有多种方法可以实现文件的高效传输,使用这些方法,可以在不同的操作系统和环境下,实现文件的快速、安全迁移,详细请看下文2024-09-24
统信 UOS V20 桌面专业版(1070u1)正式发布,支持微信扫码登录、应用窗口缩略图,海量功能修复,详细请看下文介绍2024-08-08
怎么看自己IP地址? 不同的操作系统中查看路由器的IP地址的方法
在互联网上进行网络连接,每个设备都有一个唯一的标识,即IP地址,本文介绍了如何在不同平台上查找路由器的IP地址,包括Windows、Mac、iPhone、iPad、Android、Chrome OS和2024-07-16
很多人在使用虚拟机系统的时候,经常对虚拟机的运行速度不甚满意,甚至经常很恼火,虚拟机速度慢有很多原因,每个人需要根据自己的情况具体分析,本文根据笔者的使用经验将2024-02-21
使用虚拟机的时候,遇到了错误,想要把错误的代码或是运行情况复制粘贴到Windows的网上论坛区求助大神,该怎么操作呢?详细请看下文介绍2024-02-21
统信UOS V20桌面专业版(1060)11月更新发布(附更新内容汇总)
国产桌面操作系统统信 UOS V20 专业版(1060)11月更新发布,这是统信 UOS V20 专业版(1060)2023 年度最后一次更新,下面我们就来看看详细的更新内容2023-12-01
统信 UOS 将推 Rust 版 Bash 命令行工具 utshell(附下载地址)
统信 UOS 服务器版将于不久后推出 Rust 版 Bash,名为 utshell,旨在突破传统 Shell 所面临的安全限制,详细请看下文介绍2023-09-20
UOS开机进入busybox界面怎么办 uos无法进入桌面的解决办法
UOS开机进入busybox界面怎么办?UOS系统开机黑屏进入busybox界面了,该怎么办呢?下面我们就来看看uos无法进入桌面的解决办法2023-09-06









最新评论