文章目录

  • 0.1 前提
  • 0.2 目标:
  • 1.1 vscode ssh设置
  • 1.2 python环境部署
    • 1.2.1 创建venv环境
  • 1.3 flask 服务器部署
    • 1.3.2 创建flask应用
    • 1.3.3 gunicron服务器配置
  • 1.4 打包镜像并上传到docker hub
    • 1.4.1 阿里云ecs部署docker
    • 1.4.2 配置docker镜像加速
    • 1.4.3 使用Docker封装flask应用
      • 1.4.3.2 创建Dockerfile文件
      • 1.4.3.3 使用Dockerfile构建镜像
    • 1.4.4 推送镜像到docker hub
      • 1.4.4.1 注册docker hub账号
      • 1.4.4.2 修改image tag
      • 1.4.4.3 push到docker hub

0.1 前提

​ 阿里ecs:Ubuntu20.0

0.2 目标:

  • vscode SSH 到 阿里云ecs进行远程开发
  • 阿里云ecs部署python开发环境
  • flask 服务器部署
  • 打包镜像并上传到docker hub

1.1 vscode ssh设置

四步完成vscode远程开发配置 - 简书 (jianshu.com)

输入要ssh的远程主机的ip

进入ssh配置页面

在打开的文件中输入

Host 1XX.77.X.XHostName 1XX.77.X.XXUser root

右键连接

输入密码,就可连接远程主机了。

1.2 python环境部署

如何在Ubuntu 20.04上创建Python虚拟环境?-51CTO.COM

1.2.1 创建venv环境

# ubuntu20 已移除python2且自带python3
apt update && apt upgrade
python3 -V
apt-cache search venv
apt -y install python3-venv # 创建venv环境
python3 -m venv /opt/my_first_venv
cd /opt/my_first_venv
# 激活venv环境
source my_first_venv/bin/activate# 激活后shell提示会变化为如下所示
(my_first_venv) # # 停用venv环境
(my_first_venv)  deactivate

1.3 flask 服务器部署

Flask + Docker 无脑部署新手教程 - 知乎 (zhihu.com)

# 1 在venv环境中使用gnicron部署flask应用
pip install gunicorn gevent

1.3.2 创建flask应用

在项目根目录下创建start.py 文件,这是项目的启动文件

#start.py
from project import create_app #从project文件夹中的__init__.py中导入create_app函数app = create_app() #记住这里的变量名appif __name__ == '__main__':app.run(debug=True)

1.3.3 gunicron服务器配置

在项目根目录下创建 gunicorn.conf.py 文件

workers = 5    # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"   # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:80"

测试项目运行

# start:app 中的start为前一步创建的start.py文件名,app为start.py文件中创建的flask app变量名gunicorn start:app -c gunicorn.conf.py

1.4 打包镜像并上传到docker hub

1.4.1 阿里云ecs部署docker

Install Docker Engine on Ubuntu | Docker Documentation

sudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get update
sudo apt-get install \ca-certificates \curl \gnupg \lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgsudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker.iosystemctl enable docker
systemctl start docker

1.4.2 配置docker镜像加速

阿里云镜像加速: 容器镜像服务 (aliyun.com)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.js <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","https://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","http://f1361db2.m.daocloud.io"]
}
EOFsudo systemctl daemon-reload
sudo systemctl restart docker

1.4.3 使用Docker封装flask应用

# 生成项目依赖文件,后期安装可使用 pip install -r requirements.txt安装依赖
pip freeze -> requirements.txt

1.4.3.2 创建Dockerfile文件

在项目根目录下创建名为Dockerfile的文件,用于docker镜像构建

FROM python:3.6
WORKDIR /Project/demoCOPY requirements.txt ./
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simpleCOPY . .CMD ["gunicorn", "start:app", "-c", "./gunicorn.conf.py"]

WORKDIR 为项目要部署到服务器上的路径

CMD 里面的 start 是我们上面写的 python 启动文件名,app 是启动文件里面要启动的应用名(变量名)

1.4.3.3 使用Dockerfile构建镜像

# 在Dockerfile目录下执行
sudo docker build -t "testflask" . # 最后的 点 表示使用当前目录下的Dockerfile文件docker images # 查看镜像

1.4.4 推送镜像到docker hub

1.4.4.1 注册docker hub账号

Docker Hub

创建private 仓库,假设仓库名称为 ali/flask_server, 其中ali表示用户名,flask_server为repositories名。

1.4.4.2 修改image tag

# 1 查看生成的镜像
docker images REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
testflask       latest    cadd2701b704   2 hours ago    998MB
python          3.8       ce9555db0df5   2 months ago   909MB
hello-world     latest    feb5d9fea6a5   5 months ago   13.3kB# 2 修改tag
docker tag testflask  ali/flask_server:v1# 3 查看修改结果
docker images REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
testflask       latest    cadd2701b704   2 hours ago    998MB
ali/flask   v1        cadd2701b704   2 hours ago    998MB
python          3.8       ce9555db0df5   2 months ago   909MB
hello-world     latest    feb5d9fea6a5   5 months ago   13.3kB

1.4.4.3 push到docker hub

# 登录docker hub
docker login -u username -p# 推送
docker push ali/flask:v1

docker部署flask应用相关推荐

  1. Docker 部署 Flask

    Docker 部署 Flask 最近在用 Monorepo => (Flask + React) + (Python + TypeScript) 写一些自己东西,记于此,温故而知新 WSGI S ...

  2. 实战基于Docker部署FLASK后端api并使用云托管服务

    上篇文章我们讲了怎么用docker部署nginx应用网站,这篇文章我们就来部署我们的后端api.我们这次尝试在服务器和微信云托管都进行部署,部署于云托管也是现在个人开发者的另一种选择(个人觉得啊)不用 ...

  3. 使用docker部署flask项目

    前言 本次部署是把2个项目.mysql.redis.uwsgi封装在一个容器中,ngnix封装在一个容器中 实际应用中最好是: 项目和uwsgi封装在一个容器中 mysql单独封装,可能还要读写分离, ...

  4. Docker部署Flask网站

    最近练练手,防止忘了,在docker上部署了下Flask网站.先单步进行,后面可以通过docker compose直接部署. 1. docker运行mysql,数据持久化到宿主机本地硬盘 docker ...

  5. CentOS docker 部署 flask + uWSGI + Nginx + Supervisor错误

    我用Superviso 启动 Nginx 和 uwsgi Superviso配置如下: Nginx 简单配置: 启动的效果: 启动Nginx的错误日志: 一直提示我端口被占用 但是我 ps -aux ...

  6. docker部署flask_使用Docker,GCP Cloud Run和Flask部署Scikit-Learn NLP模型

    docker部署flask A brief guide to building an app to serve a natural language processing model, contain ...

  7. 【基于 docker 的 Flask 的深度学习模型部署】

    文章目录 1.前言 2.docker简介 3.基于Falsk的REST API实现 4.编写dockerfile 5.基于docker的模型部署 1.前言 模型部署一直是深度学习算法走向落地的重要的一 ...

  8. docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用

    几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...

  9. 利用flask写的接口(base64, 二进制, 上传视频流)+异步+gunicorn部署Flask服务+多gpu卡部署

    一.flask写的接口 1.1 manage.py启动服务(发送图片base64版) 这里要注意的是用docker的话,记得端口映射 #coding:utf-8 import base64 impor ...

最新文章

  1. 关于Adodb.Stream的使用说明
  2. 汇总c#.net常用函数和方法集
  3. TopPaper:AI 初学者经典论文列表
  4. 修改centos7容器的时间和宿主机时间一致
  5. zookeeper centos7 集群部署
  6. c语言学生信息管理系统框架,vue实现学生信息管理系统
  7. iir matlab 系数,手把手教你用matlab生成STM32官方IIR滤波器的系数
  8. oracle下载jdk需要注册怎么办? jdk8下载
  9. Unity3d随机数生成
  10. DSP之ICETEK-DM6437-B开发
  11. lpush rpush 区别_Redis系列(六):数据结构List双向链表LPUSH、LPOP、RPUSH、RPOP、LLEN命令...
  12. fastdb缩小初始生成文件
  13. 关于CRC校验的一些总结
  14. php取网盘真实链接,利用蓝奏做个人小文件网盘和获取真实下载地址
  15. 2019年计算机二级考试mysql_2019年下半年计算机二级MySQL试题
  16. CSDN文章转onenote笔记(markdown)
  17. 计算机基础运用知识woord,《计算机基础知识word.doc
  18. kindle的xray怎么用_xray 使用说明高级版领取方式
  19. 永磁同步电机(PMSM)参数辨识(一)
  20. VQA(Visual Question Answering)技术

热门文章

  1. 沈阳中小学教材2022春季版
  2. 【笔记】Oracle的除法并保留两位小数点
  3. HTML input 标签 date 类型 设置默认值
  4. 10-199 C2-1修改订单运费
  5. 沃云服务器上部署web项目(亲试)!
  6. 单因素方差分析和多因素方差分析的差异是什么?
  7. MySQL面试题——in是否使用【索引】
  8. Github pages + Hexo 博客 yilia 主题使用畅言评论系统
  9. 暴笑笑话集(全是最新经典!)
  10. 计算机主机内部主要由哪些硬件构成,计算机硬件由哪几部分组成?各部分的作用是什么?...