• 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管理--集群管理--管理主机

    找到你要管理的主机:

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

    先停止

    再删除

     

    注意:

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

  • 相关阅读:
    Android 千牛数据库分析
    Flutter 你需要知道的那些事 01
    Flutter 异常处理之图片篇
    Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)
    Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信
    Flutter 即学即用系列博客——06 超实用 Widget 集锦
    Kingfisher-swift缓存图片框架
    swift冒泡排序,swift快速排序,swift归并排序,swift插入排序,swift基数排序
    swift声明属性为某个类型同时遵循某协议
    Xcode真机运行报错iPhone has denied the launch request
  • 原文地址:https://www.cnblogs.com/jackadam/p/8444230.html
Copyright © 2020-2023  润新知