Alpine Linux 是一套極小安全又簡單的作業系統,在現今 Docker Images 裡面,最主要推崇的就是 Ubuntu 作業系統,但是令人詬病的是 Ubuntu 還是不夠小,今天看到 Alpine 在 docker 內的大小大約是 5 MB
,看到這 size 大小,相信是令人很震撼,之前要是看到這 size 大概只有 OpenWRT 編譯 BusyBox 才有可能的大小,但是 OpenWRT 最主要還是缺乏很多目前 popular 的套件,所以 Alpine 幫你解決這問題,提供大量的 Packages 讓開發者使用。底下就可以看出 Alpine 擊敗目前盛行的 docker images 大小比較圖。
使用方式
我們來看看傳統 Ubuntu 的方式,安裝 Redis 工具
FROM ubuntu-debootstrap:14.04 RUN apt-get update -q \ && DEBIAN_FRONTEND=noninteractive apt-get install -qy redis-tools \ && apt-get clean \ && rm -rf /var/lib/apt ENTRYPOINT ["redis-cli"]
用 Alpine 則是
FROM gliderlabs/alpine:3.3 RUN apk --update add redis ENTRYPOINT ["redis-cli"]
後者執行的時間 (含裝系統) 總共需要 14 秒
大小為 6.535 MB
前者 Ubuntu 大小為 88.09 MB
差距還蠻大的。可能找時間把開發環境轉成 Alpine Docker 試試看,更多資料請參考:Alpine Linux Docker image. Win at minimalism!
See also
- Go 1.16 推出 Embedding Files
- 用 Docker 每天自動化備份 MySQL, Postgres 或 MongoDB 並上傳到 AWS S3
- 如何將前端網站打包成 Docker Image
- 使用 Docker BuildKit 加速編譯 Image
- 用 GitHub Actions 上傳 Docker Image 到 AWS ECR
- Docker 推出官方 GitHub Actions 套件
- Go Modules 處理 Private GIT Repository 流程
- 用五分鐘安裝好 Drone 搭配 GitHub 自動化環境
- 使用 Docker 五分鐘安裝好 Gitea (自架 Git Hosting 最佳選擇)
- [Go 教學] graceful shutdown 搭配 docker-compose 實現 rolling update