應用程式的藍圖 — Dockerfile
Published in
Jun 5, 2022
先前介紹過 image 的部分,即使 dockerhub 上面有各式各樣的 image,docker 也可以依照需求製作不同的 image
基本操作
我們寫個簡單的 nodejs 應用程式為例
FROM nodeWORKDIR /appCOPY . .RUN npm installCMD ["node", "app.js"]
我們來介紹上面出現的幾個關鍵字
FROM
:選擇基底 image ,這裡直接使用 node
,就是直接使用 docker hub 上面的 node:latest
WORKDIR
:生成容器後,於容器內運行的工作資料夾,若在先前沒有產生資料夾則自動產生
COPY
:將本地端( local )的檔案複製進容器內
RUN
:在容器內執行特定指令
CMD
:這個 image 生成 container 後執行的指令
這樣就完成一個簡單的 Dockerfile 了🎉
建置 image
但是這個 Dockerfile 還沒變成一個 image,需要先用 docker 讓這個檔案變成 image
# 用終端機在剛完成 dockerfile 的資料夾內執行這個指令
docker build -t my-image .# 使用這個指令可以檢查看看新的 image 有沒有產生出來
docker image ls
-t
指令代表 tag
,也可以寫作 --tag
,用來給 image 一個自己認識的名字,沒有 tag 的 image 名稱會是 <none>
,這個要注意~
以上就是 Dockerfile 的基礎操作(類似 print('hello world')
那樣),如果想要再更深入的話可以參考下面這些資源~
- Day5: 實作撰寫第一個 Dockerfile
- docker 官方的最佳實踐在這裡