文章目錄
- 構建docker file 鏡像
- 常用命令速查表
- 一、基礎指令(指定鏡像和執行命令)
- 二、構建上下文管理
- 三、設置鏡像內部環境
- 四、容器運行配置
- 五、多階段構建(可選進階)
構建docker file 鏡像
docker build -f dockerdile -t image_name:tag .
常用命令速查表
類別 | 命令 |
---|
基礎鏡像 | FROM |
構建命令 | RUN , CMD , ENTRYPOINT |
文件操作 | COPY , ADD |
配置環境 | ENV , ARG , WORKDIR , LABEL , USER |
網絡存儲 | EXPOSE , VOLUME , HEALTHCHECK |
多階段構建 | FROM ... AS , COPY --from=... |
一、基礎指令(指定鏡像和執行命令)
命令 | 作用說明 |
---|
FROM | 指定基礎鏡像(必須是第一條) |
RUN | 在鏡像構建時執行命令(如安裝軟件) |
CMD | 容器啟動時默認執行的命令(可被 docker run 覆蓋) |
ENTRYPOINT | 容器啟動時執行的命令(不易被覆蓋) |
區別 CMD 和 ENTRYPOINT:
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT ["nginx"]
CMD
可被覆蓋ENTRYPOINT
更強制性,適合構建“專用容器”
二、構建上下文管理
命令 | 作用說明 |
---|
COPY | 將本地文件復制進鏡像(常用于源碼、配置) |
ADD | 類似 COPY,但支持解壓 .tar 文件和 URL 下載(不推薦亂用) |
示例:
COPY ./app /usr/src/app
三、設置鏡像內部環境
命令 | 作用說明 |
---|
WORKDIR | 設置工作目錄(后續命令的執行路徑) |
ENV | 設置環境變量 |
ARG | 構建參數(只在構建時可用) |
LABEL | 添加元數據(作者、描述等) |
示例:
ENV LANG C.UTF-8
WORKDIR /app
ARG VERSION=1.0
LABEL maintainer="you@example.com"
四、容器運行配置
命令 | 作用說明 |
---|
EXPOSE | 聲明容器運行時監聽的端口(不會自動映射) |
VOLUME | 聲明掛載點(用于數據持久化) |
USER | 指定運行容器時的用戶 |
HEALTHCHECK | 設置健康檢查命令 |
SHELL | 改變默認 shell,比如從 sh 切換成 bash |
五、多階段構建(可選進階)
命令 | 說明 |
---|
AS | 配合 FROM 使用,用于多階段構建中的命名階段 |
示例:
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myappFROM alpine
COPY --from=builder /app/myapp /app/