Docker Compose部署Flask项目,基于MySQL数据库及Nginx代理

1 概述

本示例详述了使用Docker部署Nginx作为反向代理,基于MySQL数据库的Flask项目的基本实现过程。使用docker compose更接近于实际生产环境的部署。

2 项目准备

请参考Docker部署Flask项目,基于MySQL数据库及Nginx代理

3 项目部署

3.1 编写 docker-compose.yaml 文件,并放到系统根目录

docker-compose.yaml 文件实际上是将分步部署执行的命令,按顺序进行编排,这里配置了自动重启

services:
  mysql:
    image: mysql:8.0.33
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: demo
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - flask_net
  flaskdemo:
    build:
      context: ./flaskDockerDemo
      dockerfile: Dockerfile
    container_name: flaskdemo
    restart: always
    volumes:
      - "./flaskDockerDemo:/app"
    networks:
      - flask_net
    depends_on:
      - mysql
  nginx:
    image: nginx:1.27.1
    container_name: nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./flaskDockerDemo/static:/app/static"
      - "./flaskDockerDemo/uploads:/app/uploads"
    depends_on:
      - flaskdemo
    networks:
      - flask_net
networks:
  flask_net:
    name: flasknet

在这里插入图片描述

3.2 部署前清理

检查系统中是否已存在flasknet网络,mysql、flaskdemo、nginx容器和flaskdemo、nginx镜像,如果有先将它们从系统中删除

# 检查mysql、flaskdemo、nginx容器是否已存在
docker ps -a

# 如果已存在将其删除
docker rm -f nginx flaskdemo mysql

# 检查flaskdemo、nginx容器是否已存在
docker images

# 如果已存在将其删除
docker rmi nginx flaskdemo

# 检查flasknet网络是否已存在
docker network ps

# 如果已存在将其删除
docker network rm flasknet

或者使用暴力删除,注意以下命令会将所有镜像、容器删除

# 删除所有停止的容器
docker container prune

# 删除所有停止的镜像(除了<none>标签的镜像,即悬空镜像)
docker image prune -a

# 删除所有未使用的网络(除了默认网络)
docker network prune
3.3 部署

注意在当前登录用户根目录下执行下面命令

docker compose up -d

在这里插入图片描述

查看容器运行情况

docker compose ps

在这里插入图片描述

打开网页

在这里插入图片描述
在这里插入图片描述

系统重启测试OK

4 总结

使用Docker Compose部署项目,相对来说更为方便,在实际生产环境中的应用配置文件和yaml文件配置信息会复杂很多,可参考项目中应用到的各种技术官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值