docker 部署 flask(一)配置环境及测试












简介:
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(一)配置环境及测试的更多相关文章
- 使用 docker 部署常用的开发环境
使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...
- Docker部署Flask应用
创建应用 首先,编写一个简单的Flask应用:docker_test/flask_app.py Docker 安装 请根据自己的操作系统自行安装. Docker简介 Docker 镜像 Docker镜 ...
- 使用docker部署nginx并配置https
我只有一台服务器,但我想在这台服务器上运行多个项目,怎么办? 总不能靠加端口区分吧? 百度和Google是个好东西,于是我找到了答案,使用nginx. 通过nginx,我可以给我的一台服务器配置两个域 ...
- centos上部署flask项目之环境配置-MySQL的安装
1.添加mysql 的yum源 wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm' rpm ...
- docker 部署 flask(二)编写及生成镜像。
简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...
- 基于docker部署flask+gunicorn+nginx
nginx安装在/etc/下,项目映射在docker中的/var/www/下 1.创建docker容器将端口映射出来,将docker外的项目映射到docker中 #docker run -it -p ...
- docker 部署 flask(三)高级编写及生成镜像,安装requirements.txt
简介: 上一篇,我写了如何使用别人的docker基础镜像,生成我们的docker镜像. 也就最基本的flask,没有别的库(包)支持.连数据库支持都没有. 也就让大家了解一下怎么生成镜像而已. 本篇介 ...
- 用docker部署flask+gunicorn+nginx
说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...
- 从零开始docker部署flask
1.下载一个Ubuntu镜像 2.启动镜像,使用apt-get安装python.安装pip,建议也装个vim吧 3.通过以上的容器生成一个新的镜像,命令如下docker commit afcaf46e ...
随机推荐
- Python3基础 global 使函数中的局部变量升格为全局变量
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 为 Android 8.0 添加开机启动脚本【转】
本文转载自:https://zhuanlan.zhihu.com/p/32868074 本人对于 SELinux for Android 理解不深,下文中的各文件及安全规则虽都是我所编写,但也是一边查 ...
- 用Python为iOS和Android写跨平台的应用
首先保证安装了最新的python(当前安装的是python3.6) 一.安装Kivy :python -m pip install --upgrade pip wheel setuptools pyt ...
- 支持github的chrome插件octotree
1.这款插件有何作用? 方便浏览github上的源码 2.安装方法 通过以下链接进行安装: https://chrome.google.com/webstore
- C#学习笔记(八):多维数组
一维数组 冒泡排序 二维数组 Length:取数组元素的总个数 GetLength:取不同维度的个数 using System; using System.Collections.Generic; u ...
- java web项目去除项目名称访问设置方法及tomcat的<Host>标签讲解
本文为博主原创,未经允许不得转载. 在集群项目中,为了方便用户可以更快捷的访问,即只需要输入IP和端口号,就可以直接访问项目,因为 模块比较多,记住项目名称并不容易,所以在网上查看和学习了下设置的方法 ...
- Kafka 及 PyKafka 的使用
1. Kafka 1. 简介 Kafka 是一种分布式的.分区的.多副本的基于发布/订阅的消息系统.它是通过 zookeeper 进行协调,常见可以用于 web/nginx 日志.访问日志.消息服务等 ...
- 记一次诡异的bug
使用django做项目,在视图函数中需要查询,查询前构造一个查询参数的模型来过滤参数防止报错,然后调用模型的方法返回一个字典,包括了所有查询的字段和值,发现只要查询过一次之后,后续的访问查询结果会在之 ...
- 实现简单的ORM
介绍 本篇将介绍实现简单的ORM,即:对数据表的通用操作:增.删.改.查 数据访问层 数据访问层类图 类说明: 1.DbProvider(供应):为数据操作提供基本对象,如:连接.操作对象.事务... ...
- C# 获取文件夹下的所有文件夹及其文件
//获得当前文件夹下所有文件夹 string path = "D://文件夹"; string[] dirstr = Directory.GetDirectories(path); ...