[推薦] Docker Image Best Practice

Source

https://www.youtube.com/watch?v=t779DVjCKCs 7:14

Summary

  • 選擇輕量基礎 image:alpine 或是 Google Distroless 的 base image 是最小化的,distroless 需要比較複雜的設定
  • 利用 docker layer cache:每條 docker command 會建立一層 layer,docker 會重新使用沒有被改變過的 layer,所以通常順序一定是 copy -> install -> build
  • 善用 .dockerignore:確保 secret 不會被放到 image 中
  • 多階段 build:縮小 image size 的 OG,確保最終接端只有必要文件
  • 善用優化工具
    • dive:找出多餘的文件和優化空間
    • slim:自動最佳化與安全強化,無需修改 Dockerfile
cmd + /