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 ...
随机推荐
- python用ffmpeg进行视频处理
1.下载及安装 在ffmpeg官网https://ffmpeg.zeranoe.com/builds/可以下载到需要的版本,然后解压到D盘,添加环境变量(如D:\ffmpeg\bin) 在cmd输入f ...
- Mybatis 报错Mapper method 'xxx' has an unsupported return type
报错原因: 出现这种错误,说明sql语句执行成功,只是返回类型出了问题. 解决方法: insert.delete.update操作默认返回一个int类型的整数,将增删改的接口改成int或者void即可 ...
- 微信支付v3接口的 官方 Java SDK
啰嗦几句:微信支付v3版接口麻烦吗?在对接微信支付v3接口时,本来是一件很简单的事情,其实微信支付v3接口并不是很复杂,但是微信团队的管理很混乱,给我们开发者带来了巨大的麻烦. 微信支付v3版接口对接 ...
- 将Oracle数据库迁移到达梦数据库
公司某产品在项目现场上常用到的数据库有Oracle和达梦. 做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间.精力.故完成Oracle数据库的性能测试之后,采用直接将Oracle数据库 ...
- K3S 安装及配置
K3S安装 curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_ ...
- Kubernetes集群管理工具kubectl
Kubernetes集群管理工具kubectl 概述 kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式 ...
- hashlib加密模块、加密补充说明、subprocess模块、logging日志模块
目录 hashlib加密模块 加密补充说明 subprocess模块 logging日志模块 日志的组成 日志配置字典 hashlib加密模块 1.何为加密 将明文数据处理成密文数据 让人无法看懂 2 ...
- 8 STL-stack
重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦! 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦! 写在前面,本篇章主要介绍S ...
- Kubernetes(k8s)存储管理之数据卷volumes(二):hostPath数据卷
目录 一.系统环境 二.前言 三.hostPath数据卷 3.1 hostPath数据卷概览 3.2 创建有hostPath卷的pod 一.系统环境 服务器版本 docker软件版本 Kubernet ...
- Linux命令第三部分
一.命令 1.mv命令 ·不更改文件路径 改名 ·更改文件路径 剪切 mv [选项] 源文件或目录 目标文件或目录 2.which 查找命令.文件存放目录 搜索范围由环境变量PATH决定 3. ...