简介:

flask也是要部署的。不能老在我们的pycharm里面跑测试服务器。

各种配置linux,我看就算了吧。我们用docker部署。

也就两三行命令。

一:选择基础镜像

GitHub repo: https://github.com/tiangolo/uwsgi-nginx-flask-docker

Docker Hub image: https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/

这个应该是比较好的,作者维护的也不错,很多人都在用这个。

本次选用版本为:python3.6-alpine3.7(66M)

二:准备服务器环境

1.操作系统安装

尽可能选择linux,即使没有,你也用虚拟机装一个。

2.ssh

配置支持ssh,sftp支持。方便用winscp传文件。

3.docker

根据你的linux版本,装上docker,并设置随系统启动自动开启。

4.daocloud.io

配置daocloud.io链接支持。

最终环境就是你可以很方便的用winscp连接一个配置了daocloud可管理docker的linux服务器。

5.端口检查

如果你已经有一些容器运行在这个服务器上,请检查是否已经占用80端口,443端口。并在后面的配置中,自行替换空闲端口。

后面的文章以80端口和443端口来演示。

6.对本小结内容不理解的请看:http://www.cnblogs.com/jackadam/p/8371081.html

艹,你要补的课比较多,不贴链接了。

三:测试基础镜像

下面有两种方式来测试基础镜像,请根据自身技术能力来决定跟随哪一部分来进行测试。(仅需要一种)

1.命令行方式

在linux服务器上执行这条命令:

docker run -d -p : tiangolo/uwsgi-nginx-flask:python3.-alpine3.

等命令提示符再出来的时候就执行完了。

尝试访问服务器地址80端口:http://192.168.1.3/(自行替换你的服务器IP地址。)

镜像和环境一切工作正常,浏览器会返回这个镜像的默认返回:

Hello World from Flask in a uWSGI Nginx Docker container with Python 3.6 (default)

注意事项:

"permission denied"如果有这样的提示,一般是selinux的原因。

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。

可以用下面的这个命令临时关闭,下次重启就会再次开启

setenforce     

临时关闭后可以用这个来重新开启

setenforce 

这个命令用来查看状态:Enforcing是开启  Permissive是关闭

getenforce

2.图形方式

登录daocloud,依次点击  发现镜像--Docker Hub--输入flask--找到tiangolo/uwsgi-nginx-flask

点击部署

设定应用名称

选择版本

选择主机

下一步,进行部署

点击动态端口,给定映射端口

立即部署

uwSGI worker 就证明工作了。

尝试访问服务器地址80端口:http://192.168.1.3/(自行替换你的服务器IP地址。)

镜像和环境一切工作正常,浏览器会返回这个镜像的默认返回:

Hello World from Flask in a uWSGI Nginx Docker container with Python 3.6 (default)

四:删除测试容器。

还是两种方法,命令行,图形。

1,命令行:

docker ps
docker stop ac4
docker rm ac4
docker ps

注意:

docker ps 是列出正在运行的容器。 ac4 是我准备删除的容器的ID 的前3位,要根据你的容器ID来写

可以看第二列 IMAGES 来找到你准备删除的容器。

先stop 停止容器,才可以rm 删除容器。

最后再docker ps 验证一下。

如下图所示。

2.图形界面删除。

进入daocloud管理--集群管理--管理主机

找到你要管理的主机:

根据镜像名或容器名找到准备删除的容器。

先停止

再删除

注意:

如果你是在图形界面配置启动的容器,那么请到应用目录删除相应的应用。

docker 部署 flask(一)配置环境及测试的更多相关文章

  1. 使用 docker 部署常用的开发环境

    使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...

  2. Docker部署Flask应用

    创建应用 首先,编写一个简单的Flask应用:docker_test/flask_app.py Docker 安装 请根据自己的操作系统自行安装. Docker简介 Docker 镜像 Docker镜 ...

  3. 使用docker部署nginx并配置https

    我只有一台服务器,但我想在这台服务器上运行多个项目,怎么办? 总不能靠加端口区分吧? 百度和Google是个好东西,于是我找到了答案,使用nginx. 通过nginx,我可以给我的一台服务器配置两个域 ...

  4. centos上部署flask项目之环境配置-MySQL的安装

    1.添加mysql 的yum源 wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'    rpm ...

  5. docker 部署 flask(二)编写及生成镜像。

    简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...

  6. 基于docker部署flask+gunicorn+nginx

    nginx安装在/etc/下,项目映射在docker中的/var/www/下 1.创建docker容器将端口映射出来,将docker外的项目映射到docker中 #docker run -it -p ...

  7. docker 部署 flask(三)高级编写及生成镜像,安装requirements.txt

    简介: 上一篇,我写了如何使用别人的docker基础镜像,生成我们的docker镜像. 也就最基本的flask,没有别的库(包)支持.连数据库支持都没有. 也就让大家了解一下怎么生成镜像而已. 本篇介 ...

  8. 用docker部署flask+gunicorn+nginx

    说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...

  9. 从零开始docker部署flask

    1.下载一个Ubuntu镜像 2.启动镜像,使用apt-get安装python.安装pip,建议也装个vim吧 3.通过以上的容器生成一个新的镜像,命令如下docker commit afcaf46e ...

随机推荐

  1. Linxu内核版本号后面多出字符串或者+号【学习笔记】

    作者:庄泽彬 之前一直没有留意到但是最近在编译内核的时候版本号竟然多出了个加号+号或字符串, 后面终于找到原因了,原来config如果设置了CONFIG_LOCALVERSION_AUTO=y,内核的 ...

  2. P4396 [AHOI2013]作业

    题目链接 luogu4396 思路 唯有水题暖人心 咕了4天,今天跟着std对拍才做出来不得不说题解真的水的一批 先离散化一下 第一问差分询问,权值树状数组套一套就好了 \(nlog_{n}\) 第二 ...

  3. Unity3D学习笔记(四):物理系统碰撞和预制体

    Rigidbody(刚体组件):加了此组件游戏物体就变成刚体了 ----Mass(质量,单位kg):重力G = 质量m * 重力加速度g(g=9.81 m/s^2) --------冲量守恒定理 动量 ...

  4. JS进阶系列之作用域链

    在之前写的进阶系列里面,提到了执行上下文在创建阶段,要创建变量对象.确定作用域链还有确定this的指向,本次将重点讲解一下作用域链. JavaScript代码的执行过程 在讲解作用域链之前,首先了解一 ...

  5. MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

    EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>(). ...

  6. 成对HMM(Pair HMMs)用于双序列比对--转载

    http://blog.163.com/bioinfor_cnu/blog/static/19446223720118205527863/ 所有文章:http://blog.163.com/bioin ...

  7. pandas 处理数据中NaN数据

    使用dropna()函数去掉NaN的行或列 import pandas as pd import pickle import numpy as np dates = pd.date_range() d ...

  8. python 元组列表合并

    #create a tuple l = [(,), (,), (,)] print(list(zip(*l)))

  9. c++ 判断数组元素是否有负数(any_of)

    #include <iostream> // std::cout #include <algorithm> // std::any_of #include <array& ...

  10. js焦点事件:onfocus、onblur、focus()、blur()、select()

    焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入只有能够响应用户操作额元素才可以接收焦点事件,比如:a button input... onfocus:当元素获 ...