生成如下目录和文件

  1. .
  2. ├── app
  3. └── main.py
  4. └── Dockerfile

Dockerfile的内容

  1. FROM tiangolo/uwsgi-nginx-flask:python3.7
  2. COPY ./app /app

https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask
这是镜像的地址,上面也有使用说明

main.py的内容

  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route("/")
  4. def hello():
  5. return "Hello World from Flask"
  6. if __name__ == "__main__":
  7. # Only for debugging while developing
  8. app.run(host='0.0.0.0', debug=True, port=80) #端口是80,必须指定

生成你的Flask镜像

  1. docker build -t myflask .

这个镜像就生成了,名称为myflask,可以通过docker images查看

使用docker-compose管理容器

生成docker-compose.yml,目录结构如下
.
├── app
│ └── main.py
├── docker-compose.yml
└── Dockerfile

vi docker-compose.yml

  1. version: '3'
  2. services:
  3. flask:
  4. image: myflask #这是上面生成的flask镜像
  5. container_name: myflask #这是容器的名称
  6. ports:
  7. - 8080:80 #端口映射
  8. volumes:
  9. - /home/afei/code/mydocker/flask/app:/app #目录映射
  10. working_dir: /app #contain工作目录
  11. # 运行后执行的命令
  12. command: python main.py

docker-compose up -d就可以启动了。