1. Docker Compose简介
- 用于定义和运行多容器 Docker 的应用程序工具
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
2. Docker Compose使用
- 官方文档:https://docs.docker.com/compose/
.
├── demo.tar.gz
├── docker-compose.yml
├── Dockerfile
└── flask-docker
├── demo.py
├── docker
└── rqm.txt
version: '3.3'
services:
web:
image: demo:v1
container_name: web1
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
volumes:
FROM python:3.7
LABEL maintainer='zy'
LABEL description='simple deploying flask_project'
WORKDIR /usr/src/app
COPY ./flask-docker ./demo
WORKDIR demo
RUN pip install -i https://pypi.douban.com/simple -r rqm.txt
EXPOSE 5000
CMD [ "python", "./demo.py" ]
docker-compose up
docker-compose down
curl "127.0.0.1:8000"
3. flask项目部署
FROM python:3.7-alpine3.13
LABEL maintainer='zy'
LABEL description='simple deploying flask_project'
WORKDIR /usr/src/app
COPY ./flask-docker ./demo
WORKDIR demo
RUN pip install -i https://pypi.douban.com/simple -r rqm.txt
VOLUME /usr/src/app/demo
EXPOSE 5000
CMD [ "/usr/local/bin/gunicorn", "-c", "/usr/src/app/configs/gunicorn_config.py", "demo:app" ]
version: '3.3'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
container_name: apitest-db
volumes:
- dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: dev01
app:
depends_on:
- db
build: .
image: zyanwei2011/apitest:v1.0
container_name: apitest_d
restart: always
ports:
- 5000:5000
volumes:
- mycode:/usr/src/app/dev01/
- logs:/usr/src/app/logs/
environment:
FLASK_APP: run.py
volumes:
dbdata:
mycode:
logs: