docker-compose使用

1.创建app.py项目文件,执行以下代码

import time

import redis
from flask import Flask


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


def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)


@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.
'.format(count)

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

2.创建文件 requirements.txt 安装python的依赖项

flask
redis



3.创建一个 Dockerfile 文件,写入
  

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

4.创建一个 docker-compose.yml 文件,写入

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
  redis:
    image: "redis:alpine"

// 这边docker-compose 定义了两个服务

web ->  从 Dockerfile文件构建docker镜像
        -> 指定端口映射 5000(宿主) : 5000(容器)

redis -> 从Docker hub获取指定的redis镜像

5. 运行docker-compose up 构建并运行你的应用程序  

运行成功后,在宿主(就是物理机) 输入localhost:5000 访问容器的web项目

//docker-compose up -d 是守护模式运行

//docker-compose down 关闭服务

6. 修改 docker-compose.yml

version: '3'
services:
web:
build: .
ports:
- "8888:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"

新增volumes

指定 - .:/code

将当前目录 映射到 容器中的/code下面

原文地址:https://www.cnblogs.com/cyq632694540/p/10682654.html