Docker微容器Alpine Linux

1. 前言

使用Docker創建容器時,基礎鏡像通常選擇Ubuntu或Centos,不管哪個鏡像的大小都在100MB以上。

Alpine Linux是一個面向安全的輕型的Linux發行版。

Alpine Linux采用了 musl libcbusybox以減小系統的體積和運行時資源消耗。

在保持瘦身的同時,Alpine Linux還提供了自己的包管理工具apk。

關鍵的是,相比于其他Linux的Docker鏡像,它的容量非常小,僅僅只有5MB。

Alpine Linux的官網:
http://www.alpinelinux.org/
https://pkgs.alpinelinux.org/packages

2. 使用Alpine鏡像

下面使用Alpine鏡像,來制作nginx容器。

2.1 制作Dockerfile

Docker內容非常簡單,基礎鏡像使用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創建鏡像

# docker build -t qinxue/nginx-t .

image

出現下面錯誤的時候,重啟Docker可以解決。

ERROR: http:``//dl-4``.alpinelinux.org``/alpine/v3``.3``/main``: temporary error (try again later)

2.3 用創建好的鏡像啟動容器

確認鏡像信息

# docker images

image

可以看到,Alpine的鏡像不到5MB,用Alpine作為基礎鏡像的nginx鏡像不到7MB。

啟動容器

# docker run --name da1 -d -p 81:80 qinxue/nginx-t

通過瀏覽器訪問

image

3. 問題點

1. Alpine Linux使用了musl,可能和其他Linux發行版使用的glibc實現會有些不同。

2. musl實現的DNS服務不會使用resolv.conf文件中的search和domain兩個配置,通過DNS來進行服務發現時需要注意。

4. 后記

Alpine Linux的最大優勢是小,有消息說Docker官方鏡像將會使用Alpine Linux替換Ubuntu。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容