Docker 創(chuàng)建鏡像時(shí)提示權(quán)限不足

前一陣子在公司的內(nèi)網(wǎng)機(jī)器上創(chuàng)建鏡像万俗,php 的項(xiàng)目鏡像一直無法創(chuàng)建成功词疼,總是卡在安裝 php 擴(kuò)展時(shí)的那一層命令,提示的是在對擴(kuò)展進(jìn)行編譯時(shí)沒有權(quán)限废境,錯(cuò)誤就是下邊圖上的提示畜挨。


img_v3_0088_f7e3c152-8f24-4274-8ec4-d56d840f5fdg.jpg

這個(gè)時(shí)候開啟了漫長的排錯(cuò)過程。首先既然提示權(quán)限不足了噩凹,先切了 root 再說巴元,換成 root 執(zhí)行依然報(bào)這個(gè)問題,排除賬號權(quán)限問題驮宴。

再對比其他鏡像 nginx逮刨、redis、mysql 鏡像能夠正常創(chuàng)建堵泽,排除 docker 服務(wù)出現(xiàn)問題修己。這個(gè)時(shí)候已經(jīng)陷入了僵局,明明本地能創(chuàng)建成功的迎罗,為什么換個(gè)機(jī)器不行了睬愤。


UYr0fQXfl2.jpg

收拾下糟糕的心情,繼續(xù)排錯(cuò)纹安,既然我的本地能創(chuàng)建成功尤辱,首先能確定是 Dockerfile 文件是沒有問題砂豌,配置也是正確的,那就看下內(nèi)網(wǎng)的機(jī)器 Docker 的版本光督,果然版本存在差異阳距,內(nèi)網(wǎng)的為19,本地的是24版本结借,差比較多了娄涩,但是想著版本不對和權(quán)限有什么關(guān)系,果斷跳過這個(gè)差異點(diǎn)映跟。

再次回到錯(cuò)誤的原點(diǎn)蓄拣,既然是構(gòu)建鏡像時(shí)那一層的錯(cuò)誤,那我先去掉那層擴(kuò)展的構(gòu)建試試努隙,果然去掉后是正常的球恤,這就更加詭異了,php 的擴(kuò)展方式是按照官方鏡像教程做的荸镊,沒道理會報(bào)錯(cuò)咽斧,接著就想著容器既然已經(jīng)創(chuàng)建了,就進(jìn)入容器內(nèi)執(zhí)行安裝擴(kuò)展試試躬存,該死的容器內(nèi)執(zhí)行命令還是提示無權(quán)限张惹。

嘗試問了同事、GPT都無解岭洲,已經(jīng)逐漸紅溫走向了暴躁宛逗。


5b4a44c7821161662cb849b3c475daa1.jpg

最后其實(shí)還有一張牌問 google,我描述了一下自己碰到的問題盾剩,在 github 上找到了答案雷激,問題的根本還是 docker 的版本過低,至于解迷的過程如下:

我所使用的 Dockerfile 鏡像構(gòu)建中告私,php 的構(gòu)建層為 FROM php:8.2.17-fpm-alpine3.18屎暇,問題就出在了 alpine3.18 這個(gè) linux 鏡像上,原來 alpine3.14 發(fā)布后更新了一個(gè)叫做 faccessat2 的系統(tǒng)調(diào)度驻粟,這個(gè)就是專門負(fù)責(zé)系統(tǒng)上的文件權(quán)限檢測的根悼,并且更新文檔說明了低于 docker 20的版本會有問題,至此鏡像無法構(gòu)建的問題算是徹底破案了蜀撑!


image.png

解決方法

1挤巡、升級 docker ,這個(gè)最是簡單粗暴屯掖,但是如果是線上環(huán)境或是多人共享主機(jī)的情況下慎用
2玄柏、修改 docker 后臺運(yùn)行配置,強(qiáng)制指定文件權(quán)限檢測不使用 faccessat2 的系統(tǒng)調(diào)度贴铜。首先下載 docker 的默認(rèn)配置文件,是一個(gè)json文件 https://github.com/moby/moby/blob/master/profiles/seccomp/default.json,下載完成后修改第一行配置 defaultAction 绍坝,將 SCMP_ACT_ERRNO 改為 SCMP_ACT_TRACE徘意,然后建議把文件放到 docker 配置目錄下 /etc/docker,
配置文件準(zhǔn)備好了轩褐,接下來 docker 需要先停止后臺服務(wù)椎咧,在啟動 docker 指定參數(shù),其中參數(shù)中的文件路徑為剛才配置文件的絕對路徑

dockerd --seccomp-profile=/etc/docker/default.json &

3把介、在 docker run 時(shí)修改默認(rèn)的配置勤讽,沒試過,只能甩個(gè)官方的鏈接
https://docs.docker.com/engine/security/seccomp/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拗踢,一起剝皮案震驚了整個(gè)濱河市脚牍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌巢墅,老刑警劉巖诸狭,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異君纫,居然都是意外死亡驯遇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門蓄髓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叉庐,“玉大人,你說我怎么就攤上這事会喝≌;#” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵好乐,是天一觀的道長匾竿。 經(jīng)常有香客問我,道長蔚万,這世上最難降的妖魔是什么岭妖? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮反璃,結(jié)果婚禮上昵慌,老公的妹妹穿的比我還像新娘。我一直安慰自己淮蜈,他們只是感情好斋攀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梧田,像睡著了一般淳蔼。 火紅的嫁衣襯著肌膚如雪侧蘸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天鹉梨,我揣著相機(jī)與錄音讳癌,去河邊找鬼。 笑死存皂,一個(gè)胖子當(dāng)著我的面吹牛晌坤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旦袋,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼骤菠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疤孕?” 一聲冷哼從身側(cè)響起商乎,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胰柑,沒想到半個(gè)月后截亦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柬讨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年崩瓤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踩官。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡却桶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔗牡,到底是詐尸還是另有隱情颖系,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布辩越,位于F島的核電站嘁扼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏黔攒。R本人自食惡果不足惜趁啸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望督惰。 院中可真熱鬧不傅,春花似錦、人聲如沸赏胚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽觉阅。三九已至崖疤,卻和暖如春秘车,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戳晌。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工鲫尊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痴柔,地道東北人沦偎。 一個(gè)月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像咳蔚,于是被迫代替她去往敵國和親豪嚎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

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