在 Docker 中,可使用?docker build
?命令依據 Dockerfile 構建鏡像。下面為你詳細介紹構建鏡像的具體方式。
基本構建命令
若要構建鏡像,需在包含 Dockerfile 的目錄下執行?docker build
?命令。基本語法如下:
bash
docker build -t <鏡像名稱>:<標簽> <構建上下文路徑>
參數解釋:
-t
:用于給構建的鏡像添加標簽,格式為?鏡像名稱:標簽
,若不指定標簽,默認為?latest
。<構建上下文路徑>
:這是一個目錄路徑,Docker 會將該目錄下的所有文件和文件夾作為構建上下文發送給 Docker 守護進程。
示例
假設你有一個簡單的 Python Flask 應用,其目錄結構和文件內容如下:
plaintext
app/
├── app.py
└── Dockerfile
app.py
?文件內容
python
from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return 'Hello, World!'if __name__ == '__main__':app.run(host='0.0.0.0', port=5000)
Dockerfile
?文件內容
Dockerfile
# 使用 Python 3.9 基礎鏡像
FROM python:3.9-slim# 設置工作目錄
WORKDIR /app# 復制當前目錄下的所有文件到工作目錄
COPY . .# 安裝依賴
RUN pip install flask# 暴露端口
EXPOSE 5000# 運行應用
CMD ["python", "app.py"]
構建鏡像
在?app
?目錄下執行以下命令來構建鏡像:
bash
docker build -t my-flask-app:1.0 .
這里的?.
?代表當前目錄,也就是構建上下文路徑。
其他構建選項
- 指定 Dockerfile 文件:若 Dockerfile 不在當前目錄或者文件名不是?
Dockerfile
,可以使用?-f
?選項指定 Dockerfile 文件的路徑。
bash
docker build -t my-flask-app:1.0 -f path/to/Dockerfile .
- 禁用緩存:構建時可以使用?
--no-cache
?選項禁用 Docker 構建緩存,這樣每次構建都會重新執行所有步驟。
bash
docker build --no-cache -t my-flask-app:1.0 .
構建后的驗證
構建完成后,可使用?docker images
?命令查看本地已構建的鏡像:
bash
docker images
你應該能看到?my-flask-app:1.0
?鏡像列在其中。
運行鏡像
構建好鏡像后,你可以使用?docker run
?命令來運行容器:
bash
docker run -p 5000:5000 my-flask-app:1.0
這里的?-p 5000:5000
?表示將容器的 5000 端口映射到主機的 5000 端口。之后,你就可以通過瀏覽器訪問?http://localhost:5000
?來查看應用的輸出