天天看點

Docker 鏡像建構可以分享的快樂

作者:霍格沃茲測試

通過上一篇 Dockerfile 文法與指令的學習,本節就開始使用Dockerfile 來制作自己的 Docker 鏡像啦。

Docker 鏡像建構

建立 app.py 檔案

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello World! Hogwarts.'           

本代碼主要功能是當我們通路頁面的時候顯示一段文字“Hello World! Hogwarts.”。

建立 Dockerfile-build 檔案

FROM python:3.7-alpine
LABEL maintainer="hogwarts"

# 工作路徑設定為 /code
WORKDIR /code

# 複制 app.py 到容器内 /code 目錄
COPY app.py /code

# 建立環境變量給 Flask 使用
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0

# 安裝 gcc 工具、python 的依賴
RUN apk add --no-cache gcc musl-dev linux-headers && pip install flask

# 映射端口
EXPOSE 5000

STOPSIGNAL SIGTERM
# 為容器設定預設啟動指令
CMD ["flask", "run"]           

使用 build 指令建構鏡像,

docker build -f Dockerfile-build -t app:v1.0 .           
  • 預設 Dockerfile 要在目前目錄下,才可以直接運作 docker build。

    如果 Dockerfile 在别的路徑下面則需要添加-f參數指定Dockerfile的路徑。

  • -t app:v1.0:指定建構的鏡像名字
  • .:建構鏡像時的上下文目錄。固定寫法,建構鏡像時要先切換到放有 Dockerfile 的目錄下。
Docker 鏡像建構可以分享的快樂

鏡像建構完成後,就可以使用新鏡像提供服務啦。可以使用 docker images | grep app 來檢視生成的鏡像。

Docker 鏡像建構可以分享的快樂

我們可以通過 docker run 指令啟動我們自己建構的鏡像噢。最後通過浏覽器通路 http://你的IP:5000 來通路啟動的服務。

docker run --name app -p 5000:5000 app:v1.0           
Docker 鏡像建構可以分享的快樂

以通過 docker save 指令導出給别的小夥伴使用,還可以用 docker push 指令推送到 registry 伺服器上給别的小夥伴使用呢,是不是很便捷呀!

關注我公衆号TestingStudio,霍格沃茲的幹貨都很硬核