Alpine介紹與apk的基本使用

前言

Alpine是一個面向安全的輕量級的Linux發(fā)行版晾捏,相比與CentOS店茶,ubuntu體積小很多鲫咽,大約只有5M左右,由于體積小的原因溃斋,在很多場景下都會使用它來按需制作一些輕量級鏡像界拦,雖然體積小但它也有著自己的包管理工具apk來安裝需要的軟件,類似于CentOS中的yum、ubuntu中的apt-get

Alpine使用的c庫是使用mini版的musl libc與其他Linux發(fā)行版使用的gnu libc不一樣梗劫。雖說號稱兼容享甸,但也只是部分兼容了,缺啥補啥就是梳侨,通過一個軟鏈接來關(guān)聯(lián)蛉威。

注意:終究不是正統(tǒng)的glibc,對于一些強依賴glibc的系統(tǒng)建議不要使用Alpine走哺,比如使用了Oracle JDK的系統(tǒng)瓷翻,建議在Alpine換成OpenJDK,很多強依賴于glibc的大型項目一般也不會提供基于Alpine的Dockerfile割坠,比如tomcat

Alpine鏡像

使用docker pull拉取

# 拉取
docker pull alpine:latest
# 查看鏡像 大約只有5M
docker images|grep alpine
alpine   latest          c059bfaa849c   12 months ago   5.59MB

apk

鏡像源

一般這種需要從公網(wǎng)拉取鏡像的都需要設(shè)置鏡像源,因為默認(rèn)鏡像源在國外妒牙,下載會比較慢彼哼。比較出名的有清華大學(xué)源 、中科大源湘今、阿里云源等

清華大學(xué)的很多源不僅是apk源敢朱,都可以在下面鏈接中查找

https://mirror.tuna.tsinghua.edu.cn/help
# 清華大學(xué)源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
# 阿里云源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 中科大源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
運行

Alpine為了精簡體積是沒有bash的,使用sh運行即可摩瞎。

[root@node01 ~]# docker run -it --name=alpine alpine:latest /bin/sh
## 查看版本
/ # cat /etc/alpine-release 
3.15.0
apk基礎(chǔ)命令
/ # apk -h
apk-tools 2.12.7, compiled for x86_64.

usage: apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]

Package installation and removal:
  add        Add packages to WORLD and commit changes
  del        Remove packages from WORLD and commit changes

System maintenance:
  fix        Fix, reinstall or upgrade packages without modifying WORLD
  update     Update repository indexes
  upgrade    Install upgrades available from repositories
  cache      Manage the local package cache

Querying package information:
  info       Give detailed information about packages or repositories
  list       List packages matching a pattern or other criteria
  dot        Render dependencies as graphviz graphs
  policy     Show repository policy for packages
  search     Search for packages by name or description

Repository maintenance:
  index      Create repository index file from packages
  fetch      Download packages from global repositories to a local directory
  manifest   Show checksums of package contents
  verify     Verify package integrity and signature

Miscellaneous:
  audit      Audit system for changes
  stats      Show statistics about repositories and installations
  version    Compare package versions or perform tests on version strings

This apk has coffee making abilities.
For more information: man 8 apk

我們常用的命令如下

apk add 安裝軟件

apk del 刪除軟件

apk upgrade 升級軟件

apk info 列出已安裝的軟件信息

apk search 通過名字或描述搜索有沒有改軟件

apk fetch  從倉庫下載軟件到本地目錄拴签,下載下來的是.apk包

真正使用時還會有一些額外的參數(shù)可以設(shè)置大家可以通過 --help查看 如 apk add -h

常用的額外參數(shù)如下

# 全局參數(shù)
--no-cache 不使用本地緩存
--no-network 不使用公網(wǎng)操作

# add
-l 總是選擇latest版本
-u 升級包以及它依賴的包
--no-chown 不改變包原來的owner or group

# del
-r 遞歸刪除依賴

# fetch
-o 下載的包保存到指定目錄
-R 同時下載依賴

# info
-d 顯示描述信息
-R 顯示依賴包
-s 顯示大小
使用

時區(qū)

UTC 國際協(xié)調(diào)時間,默認(rèn)時間 0時區(qū)
GMT 格林威治時間 0時區(qū)
CST 美國旗们、澳大利亞蚓哩、古巴或中國的標(biāo)準(zhǔn)時間 顯然我們應(yīng)該使用CST,通常使用Shanghai時區(qū) +8

查看當(dāng)前時區(qū)

/ # date
Tue Dec  6 08:07:55 UTC 2022

安裝時區(qū)

/ # apk add tzdata
(1/1) Installing tzdata (2022f-r1)
Executing busybox-1.34.1-r3.trigger
OK: 9 MiB in 15 packages

## 多了一個zoneinfo目錄,里面有各種時區(qū)
/ # ls -ld /usr/share/zoneinfo/
drwxr-xr-x   19 root     root          4096 Dec  6 08:13 /usr/share/zoneinfo/

## 使用上海時區(qū)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" /etc/timezone

## 再次查看當(dāng)前時區(qū)
/ # date
Tue Dec  6 16:21:08 CST 2022
/ # date -R
Tue, 06 Dec 2022 16:21:15 +0800

下載軟件

通常公司的環(huán)境是不連外網(wǎng)的上渴,如果缺少包可以在外網(wǎng)通過apk fetch 將對應(yīng)apk包及其依賴下載下來岸梨,然后上傳至公司環(huán)境,然后通過apk add xx.apk即可安裝稠氮,下面通過下載tzdata演示

## 創(chuàng)建文件夾
~ # mkdir -p /root/tzdata

## 下載tzdata及其依賴包到/root/tzdata目錄
~ # apk fetch -R -o /root/tzdata tzdata
Downloading tzdata-2022f-r1
Downloading musl-1.2.2-r7

## 查看/root/tzdata目錄多了兩個apk包 musl-1.2.2-r7.apk tzdata-2022f-r1.apk
~ # ls -l /root/tzdata/
total 812
-rw-r--r--    1 root     root        383152 Oct 18  2021 musl-1.2.2-r7.apk
-rw-r--r--    1 root     root        443978 Nov  6 19:34 tzdata-2022f-r1.apk

## 刪除安裝好的tzdata及其依賴
~/tzdata # apk del -r tzdata
(1/1) Purging tzdata (2022f-r1)
Executing busybox-1.34.1-r3.trigger
OK: 6 MiB in 14 packages

## 時間已經(jīng)變?yōu)?UTC
~/tzdata # date
Tue Dec  6 08:43:31 UTC 2022

## 安裝/root/tzdata目錄的.apk包
## ls |xargs -n 1 列出所有的包一個個add,對于依賴包比較多的時候方便
~/ cd /root/tzdata
~/tzdata # ls |xargs -n 1 |xargs apk add --no-network
(1/1) Installing tzdata (2022f-r1)
Executing busybox-1.34.1-r3.trigger
OK: 9 MiB in 15 packages

## 時間已經(jīng)變回來曹阔,因為之前的軟連接沒刪,安裝后自動軟鏈了
~/tzdata # date
Tue Dec  6 16:45:34 CST 2022

Alpine的簡單介紹與apk命令的基本使用就介紹到這里了隔披,后面介紹Alpine中會碰到的一些問題赃份。


歡迎關(guān)注,學(xué)習(xí)不迷路奢米!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抓韩,一起剝皮案震驚了整個濱河市纠永,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌园蝠,老刑警劉巖渺蒿,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異彪薛,居然都是意外死亡茂装,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門善延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來少态,“玉大人,你說我怎么就攤上這事易遣”似蓿” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵豆茫,是天一觀的道長侨歉。 經(jīng)常有香客問我,道長揩魂,這世上最難降的妖魔是什么幽邓? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮火脉,結(jié)果婚禮上牵舵,老公的妹妹穿的比我還像新娘。我一直安慰自己倦挂,他們只是感情好畸颅,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著方援,像睡著了一般没炒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上犯戏,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天窥浪,我揣著相機與錄音,去河邊找鬼笛丙。 笑死漾脂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胚鸯。 我是一名探鬼主播骨稿,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坦冠?” 一聲冷哼從身側(cè)響起形耗,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辙浑,沒想到半個月后激涤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡判呕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年倦踢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侠草。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辱挥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出边涕,到底是詐尸還是另有隱情晤碘,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布功蜓,位于F島的核電站园爷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏式撼。R本人自食惡果不足惜童社,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望端衰。 院中可真熱鬧,春花似錦甘改、人聲如沸旅东。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抵代。三九已至,卻和暖如春忘嫉,著一層夾襖步出監(jiān)牢的瞬間荤牍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工庆冕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留康吵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓访递,卻偏偏與公主長得像晦嵌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容