天天看點

輕量級linux鏡像,輕量級發行版 Alpine Linux 介紹

Alpine Linux 作業系統是由社群開發的,面向安全的輕型 Linux 發行版,它和其他常見的 Linux 發行版不同。Alpine 采用了 musl libc 和 busybox 以減小系統體積和運作時的資源消耗,功能上要比 busybox 完善的多,是以得到開源社群越來越多的青睐。

輕量級linux鏡像,輕量級發行版 Alpine Linux 介紹

在保持瘦身的同時,Alpine 提供了自己的包管理工具 apk,可以在官方網站上查詢包資訊,也可以通過類似 apt 和 yum 的方式,在指令行查詢或安裝軟體。

Alpine 支援廣泛的場景,它特别為資深/重度Linux使用者而優化,關注安全,性能和資源使用率,是一個優秀的可适用于生産環境的基礎系統。

Alpine Docker 鏡像繼承了 Alpine Linux 發行版的這些優勢。相比于其他 Docker 鏡像,Alpine 隻有僅僅 5 MB 大小,并且擁有很友好的包管理機制。

Docker 官方推薦使用 Alpine 替代 Ubuntu 做為容器的基礎鏡像。這樣會帶來衆多好處,鏡像下載下傳速度更快,鏡像安全性提升,主機之間的切換更友善,占用更少磁盤空間等。

下表是官方容器鏡像的大小對比:

REPOSITORY TAG IMAGE ID VIRTUAL SIZE

alpine latest 4e38e38c8ce0 4.799 MB

debian latest 4d6ce913b130 84.98 MB

ubuntu latest b39b81afc8ca 188.3 MB

centos latest 8efe422e6104 210 MB

擷取并使用官方鏡像

由于鏡像很小,下載下傳時間往往很短,讀者不妨測試直接用 docker run 指令運作一個 Alpine 容器,并指定運作的 Linux 指令所需要的時間,

$ time docker run alpine echo debian.cn

Unable to find image 'alpine:latest' locally

latest: Pulling from library/alpine

c9b1b535fdd9: Pull complete

Digest: sha256:ab00606a42621fb68f2ed6ad3c88be54397f981a7b70a79db3d1172b11c4367d

Status: Downloaded newer image for alpine:latest

debian.cn

real 0m5.315s

user 0m0.028s

sys 0m0.019s

遷移至 Alpine 基礎鏡像

目前大部分 Docker 官方鏡像都已經支援 Alpine 作為基礎鏡像,可以很容易進行遷移。例如:

ubuntu/debian -> alpine

python:2.7 -> python:2.7-alpine

ruby:2.3 -> ruby:2.3-alpine

另外,如果使用 Alpine 鏡像替換 Ubuntu 基礎鏡像,安裝軟體包時需要用 apk 包管理器替換 apt 工具,如,

$ apk add --no-cache

Alpine 中軟體安裝包的名字可能會與其他發行版有所不同,可以官方網站上搜尋并确定安裝包名稱。如果需要的安裝包不在主索引内,但是在測試或社群索引中。那麼可以用以下方法通路這些包,

$ echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories

$ apk --update add --no-cache

參考資源