首頁 >運維 >Docker >docker alpine是什麼

docker alpine是什麼

藏色散人
藏色散人原創
2021-12-09 15:55:338108瀏覽

docker alpine是一種映像,Alpine Docker映像繼承了Alpine Linux發行版的優勢,相較於其他Docker映像,它的容量非常小,僅只有5MB左右,且擁有非常友善的套件管理機制。

docker alpine是什麼

本文操作環境:ubuntu 18.04系統、Docker 20.10.11版、Dell G3電腦。

docker alpine是什麼?

Alpine 作業系統是一個安全導向的輕量 Linux 發行版。它不同於通常 Linux 發行版,Alpine 採用了 musl libc 和 busybox 以減小系統的體積和運行時資源消耗,但功能上比 busybox 又完善的多,因此得到開源社區越來越多的青睞。在保持瘦身的同時,Alpine 還提供了自己的套件管理工具 apk,可以透過 https://pkgs.alpinelinux.org/packages 網站上查詢包信息,也可以直接透過 apk 命令直接查詢和安裝各種軟體。

Alpine 由非商業組織維護的,支援廣泛場景的 Linux發行版,它特別為資深/重度Linux用戶而優化,專注於安全,效能和資源效能。 Alpine 鏡像可以適用於更多常用場景,並且是一個優秀的可以適用於生產的基礎系統/環境。

Alpine Docker 映像也繼承了 Alpine Linux 發行版的這些優勢。相較於其他 Docker 映像,它的容量非常小,僅只有 5 MB 左右(對比 Ubuntu 系列映像接近 200 MB),且具有非常友好的套件管理機制。官方鏡像來自 docker-alpine 專案。

目前 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 指令,例如:

$ docker run alpine echo '123'
123

遷移至Alpine 基礎映像

目前,大部分Docker 官方映像都已經支援Alpine 作為基礎映像,可以輕鬆進行遷移。

例如:

ubuntu/debian -> alpine
python:3 -> python:3-alpine
ruby:2.6 -> ruby:2.6-alpine

另外,如果使用Alpine 映像取代Ubuntu 基礎映像,安裝軟體套件時需要用apk 套件管理器取代apt 工具,如

$ apk add --no-cache <package>

Alpine 中軟體安裝包的名字可能會與其他發行版有所不同,可以在https://pkgs.alpinelinux.org/packages 網站搜尋並確定安裝包名稱。如果需要的安裝包不在主索引內,但是在測試或社群索引中。那麼可以按照以下方法使用這些安裝包。

$ echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
$ apk --update add --no-cache <package>

由於在國內訪問 apk 倉庫較慢,建議在使用 apk 之前先替換倉庫地址為國內鏡像。

RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \
      && apk add --no-cache <package>

推薦學習:《Docker影片教學

以上是docker alpine是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:docker是啥意思下一篇:docker是啥意思