dockercompose doc

1. 0x02 yml模板文件

1.1. command

重写默认的命令,支持两种格式

command: bundle exec thin -p 3000
command: [bundle, exec, thin, -p, 3000]

command 不支持 多条命令通过 && 连接执行,可以使用 bash -c "cmd1 && cmd2"

2. 介绍

Docker Compose 是官方提供的容器业务流程框架(曾经的项目名称是Fig)。

Docker Compose 处理Docker容器部署分布式应用,可以定义哪个容器运行哪个应用。

使用Compose,只需要定义一个多容器应用的yml文件(docker-compose.yml),然后使用一条命令(docker-compose up)即可部署运行所有的容器。

3. 安装

pip install docker-compose

# 确认安装正确
docker-compose --version

4. 使用方法

使用官网的简单示例

  • 准备
mkdir compose_test
cd compose_test

新建 app.py ,使用flash web框架,数据库使用redis

import os

from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return "Hello, i have been seen {n} times".format(n=redis.get('hits'))

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

创建 requirements.txt

flask
redis
  • 创建镜像

Dockerfile创建镜像,

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
  • 定义服务

创建docker-compose.yml

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

redis:
    image: redis
  • web服务:该容器从当前文件夹的dockerfile创建,并运行 python app.py 命令; 将web容器内端口映射到主机5000端口;挂载当前文件夹到容器内部的/code文件夹,将web容器与redis容器连接

  • redis服务:直接由官方的redis镜像创建

  • 启动

docker-compose up

先启动redis容器,再启动web容器,然后两者连接起来

  • 访问

firefox > 127.0.0.1:5000

curl 127.0.0.1:5000

results matching ""

    No results matching ""