1. 前言
使用Docker創(chuàng)建容器時闷哆,基礎(chǔ)鏡像通常選擇Ubuntu或Centos阵翎,不管哪個鏡像的大小都在100MB以上院领。
Alpine Linux是一個面向安全的輕型的Linux發(fā)行版双絮。
Alpine Linux采用了 musl libc 和 busybox以減小系統(tǒng)的體積和運行時資源消耗浴麻。
在保持瘦身的同時,Alpine Linux還提供了自己的包管理工具apk囤攀。
關(guān)鍵的是软免,相比于其他Linux的Docker鏡像,它的容量非常小焚挠,僅僅只有5MB膏萧。
Alpine Linux的官網(wǎng):
http://www.alpinelinux.org/
https://pkgs.alpinelinux.org/packages
2. 使用Alpine鏡像
下面使用Alpine鏡像,來制作nginx容器。
2.1 制作Dockerfile
Docker內(nèi)容非常簡單榛泛,基礎(chǔ)鏡像使用Alipine蝌蹂,用apk安裝nginx,指定暴露的端口曹锨,啟動nginx
# vi Dockerfile
FROM alpine:latest
MAINTAINER ee900222 ee900222@gmail.com
# install nginx
RUN apk --update add nginx
EXPOSE 80
CMD [``"nginx"``, ``"-g"``, ``"daemon off;"``]
2.2 用Dockerfile創(chuàng)建鏡像
# docker build -t qinxue/nginx-t .
image
出現(xiàn)下面錯誤的時候孤个,重啟Docker可以解決。
ERROR: http:``//dl-4``.alpinelinux.org``/alpine/v3``.3``/main``: temporary error (try again later)
2.3 用創(chuàng)建好的鏡像啟動容器
確認(rèn)鏡像信息
# docker images
可以看到沛简,Alpine的鏡像不到5MB齐鲤,用Alpine作為基礎(chǔ)鏡像的nginx鏡像不到7MB。
啟動容器
# docker run --name da1 -d -p 81:80 qinxue/nginx-t
通過瀏覽器訪問
3. 問題點
1. Alpine Linux使用了musl椒楣,可能和其他Linux發(fā)行版使用的glibc實現(xiàn)會有些不同给郊。
2. musl實現(xiàn)的DNS服務(wù)不會使用resolv.conf文件中的search和domain兩個配置,通過DNS來進(jìn)行服務(wù)發(fā)現(xiàn)時需要注意捧灰。
4. 后記
Alpine Linux的最大優(yōu)勢是小丑罪,有消息說Docker官方鏡像將會使用Alpine Linux替換Ubuntu。