Skip to content
All writing Part 05 of 09 · 從筆電連上遠端資料庫
Engineering · 1 min read

build 期 COPY 把檔案烤進映像,volume 是即時掛載

檔案進容器的兩條路:build 期的 COPY 把它烤進映像(改了要 rebuild),run 期的 volume 掛的是即時的本地路徑。把管線烤進去,把狀態掛上來。

一個檔案要進容器有兩條路,發生在不同階段、行為也不同:

COPY (Dockerfile) build 期 烤進映像 改了要 rebuild 才生效 volumes: (compose) run 期 即時的本地路徑 改了立刻生效 把管線烤進去,把狀態掛上來
build 期的 COPY 把檔案烤進映像;run 期的 volume 掛的是即時的本地路徑。
階段持久性改動何時生效
COPY(Dockerfile)build烤進映像只有 rebuild 之後
volumes:(compose)run即時的本地路徑立刻

口訣:把管線烤進去,把狀態掛上來。 定義映像的東西(程式碼/工具,要自足、可重現)用烤的;必須留在 host 上或會即時變動的東西(憑證、config、資料)用掛的。

這次的實例: ClickHouse 容器用 COPYentrypoint.sh 烤進去,但把 ~/.config/gcloud + ~/.kubevolume 掛載,這樣憑證不會漏進映像、還能即時更新,而改 entrypoint.sh 就得 rebuild。同理,它會先把掛進來的 kubeconfig 複製到 /tmpsed——就是為了不去改到 host 上那份活的檔案。

把管線烤進映像、把會變動的狀態(憑證/config/資料)掛成 volume。


參考來源

Related: 回到遠端資料庫連線總覽;搭配 docker-compose image vs build 一起看。

Tags #docker #devops
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration