多语言展示
当前在线:355今日阅读:23今日分享:25

如何在网易蜂巢发布部署Python网站

本文主要演示如何在本地创建镜像,并使用该镜像在蜂巢上部署 Python 应用。示例采用 Python 的 Flask 框架构建了一个简单的 Web 应用。
方法/步骤
1

安装 Docker 工具在Windows 或 Mac 环境下 ,安装 Boot2dcoker、DockerToolBox 等工具。 具体请参考:https://docs.docker.com/engine/installation/。注:Docker 客户端版本要求 1.7 及以上。

2

创建 Python 应用本地创建 Python 应用 hello.py,且该应用的源码如下所示:#-*- coding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route("/") def hello():    return "Hello World!" if __name__ == "__main__":    app.run(host="0.0.0.0", port=80)注意如下问题:Python 语言的缩进问题;IP 应指定为 0.0.0.0 (不要指定为 127.0.0.1 或 localhost,否则只能本机访问);端口需要与服务部署时的负载均衡目的端口(默认 80)一致。

3

创建 Dockerfile本地创建的 Dockerfile,具体内容如下所示,主要进行了如下操作:更新 Python 版本;安装 Pip 与 Flask;添加本地的 Python 应用(本示例为 hello.py)并执行。FROM hub.c.163.com/nce2/python:2.7 # Sources RUN echo "deb http://mirrors.163.com/debian wheezy main non-free contrib" > /etc/apt/sources.list RUN echo "deb http://mirrors.163.com/debian wheezy-proposed-updates main contrib non-free" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.163.com/debian wheezy main non-free contrib" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.163.com/debian wheezy-proposed-updates main contrib non-free" >> /etc/apt/sources.list RUN \      apt-get update -y && \      apt-get remove -y python && \      apt-get install -y python RUN wget -q "https://bootstrap.pypa.io/get-pip.py" && \      python get-pip.py > /dev/null && \      pip install Flask ADD hello.py /root/hello.py WORKDIR /root/ CMD python hello.py注意:此 Dockerfile 只能在 Windows 和 Mac 上面创建成功,在 Linux 系统上则会报错。

4

创建本地镜像切换到 Dockerfile 所在的目录下,然后执行如下命令生成本地镜像:docker build -t flaskdemo .执行的过程如下图所示:

5

推送本地镜像上传本地镜像至镜像仓库的方法请参考 https://c.163.com/wiki/index.php?title=如何推送本地镜像

6

上传成功后,可在蜂巢的镜像仓库列表查看。

7

创建集群上传镜像成功后,可利用自定义镜像创建容器或服务。对于一般的 Web 应用,蜂巢建议采用集群的方式进行创建,可以提供负载均衡的服务。1. 登录蜂巢控制台;2. 点击左侧导航菜单的「集群管理」;3. 选择「自定义镜像」;4. 选中本地推送的镜像,且负载均衡的目的端口号需与服务监听的端口号保持一致(负载均衡的端口号为对外暴露的端口),开始创建集群:

8

部署完毕创建成功后,可通过集群列表查看公网 IP:

9

在浏览器中输入该 IP 地址及设置的端口(本例设置为 80,故省略),即可访问部署的 Python 应用:

10

FAQ为什么 flaskdemo 的容器创建成功之后,却无法运行?检查 hello.py 文件是否输入错误,逻辑独立的语句前面不能留有空格。使用上传的镜像创建容器时,出现「私有网 IP 绑定失败」时,是什么原因?可能是 hello.py 文件存在问题。为什么服务创建成功以后,输入 IP 地址后出现以下界面?端口配置出现错误,端口应当设置成:源端口:80 目的端口:80。

推荐信息