Docker 鏡像構(gòu)建可以分享的快樂
通過上一篇 Dockerfile 語法與指令的學(xué)習(xí),本節(jié)就開始使用Dockerfile 來制作自己的 Docker 鏡像啦。
Docker 鏡像構(gòu)建
新建 app.py 文件
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
? ?
return 'Hello World! Hogwarts.'
本代碼主要功能是當(dāng)我們訪問頁面的時候顯示一段文字“Hello World! Hogwarts.”。
新建 Dockerfile-build 文件
FROM python:3.7-alpine?
LABEL maintainer="hogwarts"
# 工作路徑設(shè)定為 /code
?WORKDIR /code
?# 復(fù)制 app.py 到容器內(nèi) /code 目錄
?COPY app.py /code?
?# 創(chuàng)建環(huán)境變量給 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?
# 為容器設(shè)置默認啟動命令
CMD ["flask", "run"]
使用 build 命令構(gòu)建鏡像,
docker build -f Dockerfile-build -t app:v1.0 .
默認 Dockerfile 要在當(dāng)前目錄下,才可以直接運行 docker build。
如果 Dockerfile 在別的路徑下面則需要添加-f參數(shù)指定Dockerfile的路徑。-t app:v1.0:指定構(gòu)建的鏡像名字
.:構(gòu)建鏡像時的上下文目錄。固定寫法,構(gòu)建鏡像時要先切換到放有 Dockerfile 的目錄下。
鏡像構(gòu)建完成后,就可以使用新鏡像提供服務(wù)啦??梢允褂?docker images | grep app 來查看生成的鏡像。

我們可以通過 docker run 命令啟動我們自己構(gòu)建的鏡像噢。最后通過瀏覽器訪問?http://你的IP:5000?來訪問啟動的服務(wù)。
docker run --name app -p 5000:5000 app:v1.0

以通過 docker save 命令導(dǎo)出給別的小伙伴使用,還可以用 docker push 命令推送到 registry 服務(wù)器上給別的小伙伴使用呢,是不是很便捷呀!
關(guān)注我公眾號TestingStudio,霍格沃茲的干貨都很硬核