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