Docker 基本觀念與使用教學:自行建立Docker 影像檔 | docker python教學
Docker容器傳統上的應用成是在開發與佈署時,都會需要注意執行環境是否一致的問題,以Python來說,可能需要注意直譯器的版本是否相同,所需要的函式庫是否有安裝等,而在Docker環境之下,這個問題可以簡化許多,在Docker中開發應用程式時,我們就會將所有程式需要的Python直譯器、函式庫等元件都放進Docker影像(image)中,讓所有的必要元件與應用程式都放在一起,在佈署時也隨同應用程式一起放進目標的執行環境中。DockerfileDocker容器內部的各種系統資源(例如儲存、網路等)都是抽象的,我們需要自行定義內部抽象資源與外部實體...
Docker 容器傳統上的應用成是在開發與佈署時,都會需要注意執行環境是否一致的問題,以 Python 來說,可能需要注意直譯器的版本是否相同,所需要的函式庫是否有安裝等,而在 Docker 環境之下,這個問題可以簡化許多,在 Docker 中開發應用程式時,我們就會將所有程式需要的 Python 直譯器、函式庫等元件都放進 Docker 影像(image)中,讓所有的必要元件與應用程式都放在一起,在佈署時也隨同應用程式一起放進目標的執行環境中。
DockerfileDocker 容器內部的各種系統資源(例如儲存、網路等)都是抽象的,我們需要自行定義內部抽象資源與外部實體資源的對應關係,這些設定都是寫在 Dockerfile 這個 Docker 容器的設定檔中,以下示範如何使用 Dockerfile 建立一個 Docker 應用程式。
首先在一個空的目錄中,建立一個檔名為 Dockerfile 的文字檔,內容如下:
FROM python:2.7-slim WORKDIR /app ADD . /app RUN pip install -r requirements.txt EXPOSE 80 ENV NAME World CMD ["python", "app.py"]Dockerfile 需要用到另外兩個檔案,分別為 requirements.txt 與 app.py,app.py 就是我們自己撰寫的 Python 應用程式,而 requirements.txt 則是相依套件的列表,請在同一個目錄中建立這兩個檔案。requirements.txt 的內容為:
Flask Redisapp.py 是自己開發的應用程式,這裡我們實做一個簡單的網頁伺服器,並連接到內部的 Redis 資料庫,其完整的內容如下:
from flask import Flask from redis import Redis, RedisError ...