Docker与Fig自动化编排工具使用方法

作者:技术拾光

时间:2026-07-25

浏览:575

在Docker使用过程中,编排(Orchestration)是一个关键概念。初学者操作单个容器较为简单,但涉及网络时,将所有进程放入同一个容器并不可靠。随着多容器架构的搭建,手动连接容器和管理数据卷的复杂度不断增加,因此需要更高效的编排工具来应对。 Fig 简介 Fig正是应对这一需求的实用工具。它

文章目录

在Docker使用过程中,编排(Orchestration)是一个关键概念。初学者操作单个容器较为简单,但涉及网络时,将所有进程放入同一个容器并不可靠。随着多容器架构的搭建,手动连接容器和管理数据卷的复杂度不断增加,因此需要更高效的编排工具来应对。

Fig 简介

Fig正是应对这一需求的实用工具。它由Orchard公司开发,迅速成为自动化Docker容器编排领域的事实标准。目前,Fig团队已被Docker公司收购,并成为官方支持的解决方案。

安装 Fig

安装Fig非常简单,只需一行命令即可完成:

$ sudo pip install -U fig

如果命令执行失败,建议查阅Fig官方文档,通常能快速解决问题。

使用 Fig

使用Fig编排基础设施的核心是编写YAML配置文件。Fig的语法直观,与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 容器:基于 ubermuda/pagekit 镜像,暴露80端口,通过别名 pagekit_db_1 连接到db容器,并挂载data容器的数据卷。

db 容器:展示了在容器中定义环境变量的便捷性——直接使用 environment 配置即可。甚至可以不指定具体值,Fig会从宿主机的同名环境变量中获取。例如:

db:
  environment:
    MYSQL_ROOT_PASSWORD

data 容器:通过 volumes 参数定义需要共享的目录,实际执行 /bin/true 命令,仅作为数据卷提供者。

配置文件编写完成后,启动整个基础设施只需一条命令:

$ 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,这正是预期效果。data容器由于执行 /bin/true,日志中无输出。

启动完成后,可在另一个终端使用 docker ps 确认所有容器正常运行。如需验证web容器是否可用,通过浏览器访问(先用 docker ps 或 docker port 查看映射端口)。

不过需要说明的是,截至目前,Fig 还不支持远程编排,也就是说,你只能在单台主机上完成整个基础设施的编排。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›