日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

與機(jī)器打交道的工作:細(xì)節(jié)決定浪費(fèi)生命的時(shí)間——記一次 Docker 與軟鏈接的故障

來源: 責(zé)編: 時(shí)間:2024-07-19 08:01:38 595觀看
導(dǎo)讀問題背景假設(shè)在一臺(tái) ubuntu 服務(wù)器上,我們有一個(gè)專門存放日頻數(shù)據(jù)的路徑:ls /data/daily -lh202401012024010220240103...這些數(shù)據(jù)過于龐大,我們無法將其全部保存在服務(wù)器中。對(duì)于這些數(shù)據(jù),只有當(dāng)天的路徑,我們需要對(duì)其有

問題背景

假設(shè)在一臺(tái) ubuntu 服務(wù)器上,我們有一個(gè)專門存放日頻數(shù)據(jù)的路徑:L6Q28資訊網(wǎng)——每日最新資訊28at.com

ls /data/daily -lh202401012024010220240103...

這些數(shù)據(jù)過于龐大,我們無法將其全部保存在服務(wù)器中。對(duì)于這些數(shù)據(jù),只有當(dāng)天的路徑,我們需要對(duì)其有「寫」的權(quán)限,歷史數(shù)據(jù)我們只讀即可。L6Q28資訊網(wǎng)——每日最新資訊28at.com

因此,假設(shè)今天是 20240717 ,那么,我們可以將小于 20240717 的數(shù)據(jù)軟鏈接到一個(gè) mount 到服務(wù)器上的分布式文件系統(tǒng)中,比如:L6Q28資訊網(wǎng)——每日最新資訊28at.com

ls /data/daily -lh20240101 -> /mnt/gfs-data/daily/2024010120240102 -> /mnt/gfs-data/daily/20240102...20240716 -> /mnt/gfs-data/daily/2024071620240717

接下來,我們希望啟動(dòng)的 docker 容器可以訪問 daily 數(shù)據(jù),那么:L6Q28資訊網(wǎng)——每日最新資訊28at.com

docker run /  -v /data/daily:/data/daily /  --name my-service-container /  my-service-image  run-service-command

此時(shí) my-service-container 報(bào)錯(cuò):L6Q28資訊網(wǎng)——每日最新資訊28at.com

no such file or directory: /data/daily/20240716

但是當(dāng)你進(jìn)入容器:L6Q28資訊網(wǎng)——每日最新資訊28at.com

docker exec -it my-service-container /bin/bash$ cd /data/daily$ ls20240101  20240102  ...  20240716 20240717# 數(shù)據(jù)似乎存在?$ ls -l 20240716no such file or directory: 20240716# 明明存在,卻無法訪問?

那么,問題出在了哪里?

我估計(jì)讀到這里的讀者中,至少有一半已經(jīng)知道了問題所在。L6Q28資訊網(wǎng)——每日最新資訊28at.com

但是讓我們先來看看一些錯(cuò)誤的思路(也是困住了我的思路):L6Q28資訊網(wǎng)——每日最新資訊28at.com

一、會(huì)不是文件系統(tǒng)權(quán)限問題?L6Q28資訊網(wǎng)——每日最新資訊28at.com

  • 顯然, docker 容器在未開啟 --privileged ,權(quán)限是不完整的
  • 尤其是涉及到與 mount 分布式文件系統(tǒng)的交互,這其中是很容易出問題的

二、軟鏈接的問題?L6Q28資訊網(wǎng)——每日最新資訊28at.com

  • 軟鏈接本身不復(fù)雜,但是 docker 與軟鏈接的結(jié)合,可能有點(diǎn)問題?
  • 于是甚至很傻地去搜了 stackoverflow ,嘗試類比 docker 、 softlink 、 mount 相關(guān)的問題

三、其他更復(fù)雜的原因?qū)е碌模?span style="display:none">L6Q28資訊網(wǎng)——每日最新資訊28at.com

  • 問問 ChatGPT 吧!免費(fèi)版不聰明,再問問 ChatGPT-4o !
  • 嗯...是我的 prompt 寫得太差了?獲得了一些正確的廢話

如果你已經(jīng)知道問題,你或許會(huì)嘲笑上述費(fèi)力不討好的一番折騰。但是為什么我(或者其他陷入誤區(qū)的讀者)會(huì)想到這些呢?L6Q28資訊網(wǎng)——每日最新資訊28at.com

  1. 思維慣性。大多數(shù)日常使用 docker 的人(比如現(xiàn)在的我),對(duì)于 docker 的了解是不夠深入的,在經(jīng)歷過一些 docker 的 bug 后,再遇到類似的問題,首先會(huì)順其自然想到是不是 docker 本身的問題
  2. 所見即所得。我明明已經(jīng) ls 出了 20240101 20240102 ... 20240716 20240717 ,為什么還會(huì)出現(xiàn) no such file or directory: /data/daily/20240716 ?顯然, 20240716 是軟鏈接的、是來自 /mnt/gfs-data/ 的,而這個(gè)龐大的分布式文件系統(tǒng)很有可能存在一些兼容性問題

真正的解決之道

我在 docker 內(nèi)部敲入下面的命令讓我恍然大悟,甚至為自己的愚蠢發(fā)笑:L6Q28資訊網(wǎng)——每日最新資訊28at.com

docker exec -it my-service-container /bin/bash$ cd /data/daily$ ls -lh20240101 -> /mnt/gfs-data/daily/2024010120240102 -> /mnt/gfs-data/daily/20240102...20240716 -> /mnt/gfs-data/daily/2024071620240717

顯然,軟鏈接在 docker 內(nèi)部鏈接到了 /mnt/gfs-data/ ,那么,你也需要讓 /mnt/gfs-data/ 映射到本地的 /data/daily/ 路徑上!L6Q28資訊網(wǎng)——每日最新資訊28at.com

增加一行掛載直接解決問題:L6Q28資訊網(wǎng)——每日最新資訊28at.com

docker run /  -v /data/daily:/data/daily /  -v /mnt/gfs-data:/mnt/gfs-data /  --name my-service-container /  my-service-image  run-service-command

所以,既不是 docker 的問題,也不是權(quán)限的問題,更不是文件系統(tǒng)的問題。L6Q28資訊網(wǎng)——每日最新資訊28at.com

為什么程序員的下班時(shí)間不同

所以,為什么有些程序員下班早,看起來還很輕松?L6Q28資訊網(wǎng)——每日最新資訊28at.com

他可能并不是摸魚大事。相反,他對(duì)于機(jī)器有更好的直覺與靈感,而這一切的前提是他積累了足夠的知識(shí)與經(jīng)驗(yàn)。L6Q28資訊網(wǎng)——每日最新資訊28at.com

顯然,對(duì)于 docker ,僅僅知道基本的 cgroups 實(shí)現(xiàn)原理是不夠的。沒有更扎實(shí)的基礎(chǔ)知識(shí)與經(jīng)驗(yàn)作為支撐,我們甚至總是焦頭爛額地走向了錯(cuò)誤的解決問題的方向。L6Q28資訊網(wǎng)——每日最新資訊28at.com

細(xì)節(jié)決定浪費(fèi)生命的時(shí)間。停下來,想一想自己是不是剛剛死腦筋了。L6Q28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-101715-0.html與機(jī)器打交道的工作:細(xì)節(jié)決定浪費(fèi)生命的時(shí)間——記一次 Docker 與軟鏈接的故障

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 我們?nèi)绾喂芾碥浖?xiàng)目的交付?

下一篇: Java 函數(shù)式接口,一文徹底剖析!

標(biāo)簽:
  • 熱門焦點(diǎn)
  • K60至尊版狂暴引擎2.0加持:超177萬(wàn)跑分?jǐn)孬@性能第一

    Redmi的后性能時(shí)代戰(zhàn)略發(fā)布會(huì)今天下午如期舉辦,在本次發(fā)布會(huì)上,Redmi公布了多項(xiàng)關(guān)于和聯(lián)發(fā)科的深度合作,以及新機(jī)K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 5月iOS設(shè)備好評(píng)榜:iPhone 14僅排第43?

    來到新的一月,安兔兔的各個(gè)榜單又重新匯總了數(shù)據(jù),像安卓陣營(yíng)的榜單都有著比較大的變動(dòng),不過iOS由于設(shè)備的更新?lián)Q代并沒有那么快,所以相對(duì)來說變化并不大,特別是iOS好評(píng)榜,老款設(shè)
  • 谷歌KDD'23工作:如何提升推薦系統(tǒng)Ranking模型訓(xùn)練穩(wěn)定性

    谷歌在KDD 2023發(fā)表了一篇工作,探索了推薦系統(tǒng)ranking模型的訓(xùn)練穩(wěn)定性問題,分析了造成訓(xùn)練穩(wěn)定性存在問題的潛在原因,以及現(xiàn)有的一些提升模型穩(wěn)定性方法的不足,并提出了一種新
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個(gè)月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當(dāng)時(shí)用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰(shuí)能笑到最后?

    作者:無銹缽來源:財(cái)經(jīng)無忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對(duì)的優(yōu)勢(shì)戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • 阿里瓴羊One推出背后,零售企業(yè)迎數(shù)字化新解

    作者:劉曠近年來隨著數(shù)字經(jīng)濟(jì)的高速發(fā)展,各式各樣的SaaS應(yīng)用服務(wù)更是層出不窮,但本質(zhì)上SaaS大多局限于單一業(yè)務(wù)流層面,對(duì)用戶核心關(guān)切的增長(zhǎng)問題等則沒有提供更好的解法。在Saa
  • 2299元起!iQOO Pad明晚首銷:性能最強(qiáng)天璣平板

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),除了首發(fā)安卓最強(qiáng)旗艦處理器的iQOO Neo8系列新機(jī)外,還在發(fā)布會(huì)上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點(diǎn)
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長(zhǎng)22%

    2023年6月30日,全球行業(yè)分析機(jī)構(gòu)Counterpoint Research發(fā)布的《中國(guó)智能手機(jī)高端市場(chǎng)白皮書》顯示,中國(guó)智能手機(jī)品牌正在尋求高質(zhì)量發(fā)展,中國(guó)高端智能
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國(guó)時(shí)間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內(nèi)容審核等。此前,T
Top 主站蜘蛛池模板: 敦化市| 鱼台县| 宜丰县| 淮北市| 奎屯市| 滦平县| 六枝特区| 灯塔市| 桦甸市| 紫云| 桃园县| 天祝| 汶川县| 屯昌县| 根河市| 宜都市| 衡山县| 武山县| 黄浦区| 永胜县| 志丹县| 清原| 呼和浩特市| 南开区| 屏东市| 郁南县| 永仁县| 安龙县| 白河县| 银川市| 楚雄市| 海安县| 桦甸市| 皋兰县| 海城市| 洛浦县| 盘锦市| 宁阳县| 新丰县| 开化县| 昌宁县|