Docker部署python-Flask应用
title: Docker部署python Flask应用
date: 2022-11-19 13:00:25
tags:
- python
环境
系统:windows10
python:python3
快速开始
首先我们需要创建一个文件夹,目录结构如下:
- rootdir # 项目根目录
- app.py #入口文件
- Dockerfile # 镜像文件
创建完成后在命令行安装Flask:
pip install Flask
在app.py中写入示例代码:
#!/usr/bin/python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
@app.route("/generate")
def generate_new():
return "<h1>generate new</h1>"
print("running")
app.run(host='0.0.0.0',port=80)
然后编写dockerfile文件:
# 基础镜像
FROM python:3.7-slim-buster
# 设置镜像内的工作目录
WORKDIR /code
# 复制项目目录下的requirements.txt文件 到/code/requirements.txt
COPY requirements.txt requirements.txt
# 在工作目录下执行命令
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# 复制项目目录下所有文件到 /code/目录下
COPY . .
# 暴露80端口
EXPOSE 80
# 容器运行时执行命令
CMD ["python","app.py"]
关于dockerfile语法,百度找个文章看一下就行了,比较简单
然后在项目目录下执行命令构建镜像:
docker build --pull --rm -f "Dockerfile" -t pythondockerdemo:latest "."
我是直接用vscode的docker插件构建的,可以直接在dockerfile文件上右键执行,等同于上面这条语句
生成完成后用docker run命令执行即可
进一步的任务
多实例部署
如果需要部署多个示例,一种是用dockercompose控制绑定的宿主机端口,缺点在于每一个实例需要占用一个端口号,而且yaml文件有几个实例要写几个服务,另一种就是用docker swarm,这种就不需要自己控制端口,yaml文件也比较简单,不过更复杂一点,需要搭建docker swarm的环境,更进一步的,也可以使用k8s,那就是另一个话题了
文件处理
第一个方法是直接使用文件挂载,第二个是存储在mongodb数据库,直接从数据库操作即可(需要修改的配置文件可以包在镜像里,通过文件挂载修改,其他业务文件直接数据库或OSS等云服务处理)
参考文章
Docker部署python-Flask应用的更多相关文章
- 使用wfastcgi在IIS上部署Python Flask应用
本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...
- 笔记14:Docker 部署Python项目
Docker 部署Python项目 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取 ...
- Docker部署Python应用程序
Docker部署Python应用程序 1. 单个py文件部署 生成Dockerfile 文件 插件用的豆瓣的镜像,,重置时间(容器的默认时间是UTC时间与宿主机的相差8小时). 文中需要三个插件(pe ...
- 使用Nginx+Uwsgi部署Python Flask项目
第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...
- 使用docker 部署python 项目
使用python 开发了一个restfu api程序,使用docker镜像部署.主要有如下步骤,简单记录以供以后参考. 1. 创建DockerFile文件 创建一个DockerFile文件,文件名为D ...
- Docker部署Python项目
简介 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如果从一种操作系统里面运行另一种操作系统,通常我们采取的策略就是引入虚拟机,比如在 Wind ...
- 使用Flask+nginx+uwsgi+Docker部署python应用
https://www.cnblogs.com/vh-pg/p/11731637.html
- Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_164 书接上回,之前一篇:Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最 ...
- Docker部署Python爬虫项目
1) 首先安装docker: # 用 yum 安装并启动 yum install docker -y && systemctl start docker 2) 下载自定义镜像需要用到的 ...
- Docker下Python Flask+Redis+MySQL+RQ队列简单配置
本篇博文主要讲解Docker下使用RQ队列的通信配置,主要是网上的部分文章写的不太清楚,特写一篇 作者使用docker-compose.yml文件调度各部分文件Dockerfile,起初是这样写的 v ...
随机推荐
- LcdTools如何编写MIPI指令(初始化代码)
在LcdTools帮助文档中查看MIPI读写指令描述,如下图 编写LCM初始化代码就是配置LCM Driver IC寄存器值,一般只需用MipiWrite()指令写参数即可:下面介绍MipiWrite ...
- 3.pygame快速入门-游戏循环及动画实现
游戏循环的开始,意味着游戏的正式开始,游戏循环的作用如下 1.保证游戏不会直接退出 2.变化图像的位置--动画效果 3.检测用户交互--按键.鼠标等 游戏时钟 pyagame提供了一个pyga ...
- VUE v-model 语法糖
v-model 语法糖 描述:弹出利用v-model语法糖 父组件 子组件
- 前后端分离项目(十):实现"改"功能(前后端)
好家伙,本篇介绍如何实现"改" 我们先来看看效果吧 (这可不是假数据哟,这是真数据哟) (忘记录鼠标了,这里是点了一下刷新) First Of All 我们依旧先来理一下思路: ...
- 更改安装Oracle数据库时设定的System sys等用户的密码
因本地Oracle数据库安装久远,不知道连接账号密码,查阅了一些资料最终修改成功,Mark up! 1 在开始菜单找到Oracle服务,打开SQL plus 2 输入命令连接到数据库并修改部分用户密码 ...
- MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选
1 .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出结果中运行着的线程 ...
- mybatis的映射
//一对一 <resultMap id="给resultMap取的id名" type="类名"> <result property=" ...
- C#文件路径
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...
- Prometheus 监测 RocketMQ 最佳实践
本文作者:郭雨杰,阿里云智能技术专家. Prometheus 集成的 50 多款云产品中,RocketMQ 在可观测方面实现了非常完善的功能,是一个特别具有代表性的云产品. 01 RocketMQ如何 ...
- Go语言核心36讲48
你真的很棒,已经跟着我一起从最开始初识Go语言,一步一步地走到了这里. 在这之前的几十篇文章中,我向你一点一点地介绍了很多Go语言的核心知识,以及一些最最基础的标准库代码包.我想,你已经完全有能力独立 ...