閱讀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 創建服務