Docker fig中文教程文档

Fig 一个让docker操作更快捷,更简单的工具,使用fig让docker使用和管理更方便

下面先演示fig 是如果让docker管理更加轻松的:

首先定义一个Dockerfile 用于建立image:

FROM python:2.7

ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt

在fig 配置文件中指定要配置的服务和架构:

web:

build: .
command: python app.py
links:
- db
ports:
- "8000:8000"
db:
image: postgres

(你再也不用费死牛劲的在主机上安装postgres了!)

使用这个命令让一切开始启动 fig up

命令主要包括:

  • 启动暂停,重启各项服务
  • 查看服务状态
  • 跟踪各项服务日志
  • 让一个命令像服务那样执行

Quick start现在正式开始,用一个简单的教程来操作

首先让我们尝试建立一个python web环境,当然前期可能需要有一点python基础,当然没有基础,按照下面的几个步骤也可以对fig有很强的认识。

首先,安装docker和fig

fig 执行pip install fig 即可,fig 是基于python的,pip是python的一个包管理器。

建立一个你的项目目录:

$ mkdir figtest

$ cd figtest

在目录下建立一个 app.py,这个文件基于flask框架,创建一个操作redis的web服务:

from flask import Flask

from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host="redis_1", port=6379)

@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')

if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)

定义一个 requirements.txt这是一个指明pip安装那些包的列表文件,每行写入一个需要安装的包即可:

flask

redis

创建一个 Dockerfile用于安装规则建立一个image

FROM python:2.7

ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt

这个文件中指明了一个docker image 建立要执行的过程,如果你对Dockerfile的格式和编写还不太熟悉,建议参考:Dockerfile详解

下面要定义 fig.yml配置需要的服务:

web:

build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis

定义了下面2个服务:

  • web, 这是在 Dockerfile 中指定加入的一项服务.在image中执行 python app.py 启动一个web, 将容器内的端口 5000 转发到主机的 5000 端口,连接相应的Redis服务, 将当前目录挂载到容器中,这样就可以不用重建image就不断开发集成即可。
  • redis, 使用redis服务 redis.

现在我没允许 fig up, 现在将拉取Redis的image镜像,并建立自定义的web image镜像:

$ fig up

Pulling image redis...
Building web...
Starting figtest_redis_1...
Starting figtest_web_1...
redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3
web_1 | * Running on http://0.0.0.0:5000/

访问 http://localhost:5000 你就会看到执行了!!!

如果你希望这些在后台运行就添加 -d 然后使用 fig ps 也可以看到当前在运行的docker容器

$ fig up -d

Starting figtest_redis_1...
Starting figtest_web_1...
$ fig ps
Name Command State Ports
-------------------------------------------------------------------
figtest_redis_1 /usr/local/bin/run Up
figtest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp

fig run 也可以让你在docker中执行一个命令像运行服务那样 :

$ fig run web env

使用 fig --help 查看更多可用命令

如果你使用 fig up -d启动这些服务,你可以使用下面的命令,结束运行:

$ fig stop