阅读270 返回首页    go 网易 go 网易蜂巢


Python快速入门(镜像)

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

目录

安装 Docker 工具

在Windows 或 Mac 环境下 ,安装 Boot2docker、DockerToolBox 等工具。 具体请参考:Install Docker Engine
注:Docker 客户端版本要求 1.7 及以上。

创建 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)一致。

创建 Dockerfile

本地创建的 Dockerfile,具体内容如下所示,主要进行了如下操作:
  • 更新 Python 版本;
  • 安装 Pip 与 Flask;
  • 添加本地的 Python 应用(本示例为 hello.py)并执行。
FROM hub.c.163.com/nce2/python:2.7
# Sources
RUN echo "deb https://mirrors.163.com/debian wheezy main non-free contrib" > /etc/apt/sources.list
RUN echo "deb https://mirrors.163.com/debian wheezy-proposed-updates main contrib non-free" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.163.com/debian wheezy main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://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 系统上则会报错。

创建本地镜像

切换到 Dockerfile 所在的目录下,然后执行如下命令生成本地镜像:

docker build -t flaskdemo .

执行的过程如下图所示:

Hellopython-build.png

推送本地镜像

上传本地镜像至镜像仓库的方法请参考 如何推送本地镜像

Python快速入门 推送过程.png

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

Hellopython-push-succ.png

创建集群

上传镜像成功后,可利用自定义镜像创建容器或服务。对于一般的 Web 应用,蜂巢建议采用集群的方式进行创建,可以提供负载均衡的服务。

1. 登录蜂巢控制台

2. 点击左侧导航菜单的「集群管理」;

3. 选择「自定义镜像」;

4. 选中本地推送的镜像,开始创建集群:

Python快速入门 创建集群.png

添加监听

在负载均衡实例中添加监听,具体操作请见 创建负载均衡。并且,负载均衡的目的端口号需与集群监听的端口号保持一致(负载均衡的端口号为对外暴露的端口)。

添加监听时选择需要关联的容器或集群,填写完相应信息,点击「立即添加」。

Python快速入门 添加监听.png

部署完毕

在负载均衡列表中查看对应实例的公网 IP :

Python快速入门 公网查询.png

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

Hellopython-result.png

FAQ

  1. 为什么 flaskdemo 的容器创建成功之后,却无法运行?
  2. 检查 hello.py 文件是否输入错误,逻辑独立的语句前面不能留有空格。

  3. 使用上传的镜像创建容器时,出现「私有网 IP 绑定失败」时,是什么原因?
  4. 可能是 hello.py 文件存在问题。

  5. 为什么服务创建成功以后,输入 IP 地址后出现以下界面?
  6. Python fqa.jpg

    端口配置出现错误,端口应当设置成:源端口:80 目的端口:80。

支持文档

> 如何创建集群

> 如何管理集群

> 集群常见问题

最后更新:2017-01-03 10:48:58

  上一篇:go 集群常见问题
  下一篇:go 创建服务