时间:2021-05-02
一、目的
本地写好一个flask应用,用docker封装,上传至自己的服务器,完成部署。
流程图:
二、实验环境
本地:windows10 1909
服务器:阿里云centos系统
三、所需软件
1.dockerdesktop
2.pycharm 2020.3.3
四、步骤
1.本地完成flask应用的编写
(1)在pycharm里新建一个flask应用docker_flask
(2)安装gunicorn,gevent包
(3)新建gunicorn.config.py文件,并填入以下内容
? 1 2 3 workers = 5 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整 worker_class = "gevent" # 采用gevent库,支持异步处理请求,提高吞吐量 bind = "0.0.0.0:8080" # 这里8080可以随便调整(4)新建requirements.txt文件,并填入以下内容
flask
gunicorn
gevent
(5)创建dockerfile文件,并填入以下内容
? 1 2 3 4 5 6 7 8 9 from python:3.7 workdir /usr/src/app copy requirements.txt ./ run pip install -r requirements.txt -i copy . . cmd ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"] #前一个app是python启动的文件名,即app.py;后一个是flask项目里预启动的应用名(6)项目结构
2.构建docker镜像
1.进入本项目的目录
2.构建镜像,输入如下命令
? 1 docker build -t 'docker_flask' .然后会执行六步操作,咋们不用管它,直接看结果
查看一下
好了,到这里咱们自制的镜像就弄好了,可以在本地跑跑,实验下。
3.上传镜像到阿里云仓库
(1)在阿里云上创建一个自己的docker仓库。
(2)上传镜像
1.登录阿里云docker registry,记得用户名换成自己的。
? 1 docker login --username=你的阿里云用户名 registry.cn-hangzhou.aliyuncs.com登录密码就是你的阿里云登录密码
2.输入以下两行命令,将镜像推送到registry
? 1 2 docker tag [镜像的id] registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号] docker push registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:[镜像版本号]然后又不用管,让它自己跑完就行
我这里是之前上传上去了
4.在服务器上拉取这个镜像并运行(当然服务器上得先把docker安好)
? 1 docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:[镜像版本号]ssh登录服务器,输入上面的命令,然后查看一下是否拉下来了
4.运行一下,看看能不能成
这里我把docker的8080端口映射到服务器的28080端口上
好了,输入服务器ip:28080,看看能不能看到hello world!(记得开放端口)
到此这篇关于docker部署flask应用的实现步骤的文章就介绍到这了,更多相关docker部署flask应用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_41452937/article/details/104660945
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
首先了解一下Docker是什么?Docker是一个容器引擎,可以用来部署应用。通过Docker,可以实现快速交付,测试和部署代码,可移植性强。Docker主要包
flask是我学习的第一个python的web框架,在应用flask写完一个应用后,当然是把它部署到我们的服务器上了。首先,准备我们部署项目所需要的部分1.完整
docker概述docker是一个开源的软件部署解决方案;docker也是轻量级的应用容器框架;docker可以打包、发布、运行任何的应用,这个也是docker
最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验。应用这里使用的应用就是官方的文档中给
Nginx做为服务器,Mongo为数据库支持,Flask为Python语言的Web框架,利用Docker的容器特性,可以简单地部署在linux服务器上项目准备项