docker 部署 flask配置环境及测试
Posted 上官飞鸿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 80:80 tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
等命令提示符再出来的时候就执行完了。
尝试访问服务器地址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 0
临时关闭后可以用这个来重新开启
setenforce 1
这个命令用来查看状态: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配置环境及测试的主要内容,如果未能解决你的问题,请参考以下文章
使用 EBS 部署多容器 docker 环境(flask 和 nginx)