在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个 Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用。本文详细介绍了Fig的安装以及使用。 这个更实用的工具称为Fig。Fig是Orchard的一个产品并很快成为自动化Docker容器编排一个事实标准,目前Fig已经被Docker公司收购并成为官方支持的解决方案。 Fig是一个Python Package,你可以使用以下命令来安装: 复制代码 代码如下: $ sudo pip install -U fig
就这么简单。如果不能工作,可以从Fig的官方文档中了解更多信息。 使用Fig来编排一个基础设施,你首先需要在YAML配置文件中描述它。描述语法很简单,和Docker有点类似。 复制代码 代码如下: 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不支持远程编排,这意味着你只能在单台主机上编排一个基础设施。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论