精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

五種快速查找容器文件系統中文件的方法

系統 Linux
我們將從研究容器文件系統的簡單和通常推薦的方法開始,并討論為什么它們不能總是工作。

[[436308]]

 如果你經常使用容器,那么你很有可能希望在某個時刻查看正在運行的容器的文件系統。也許容器無法正常運行,你想讀取一些日志,也許你想檢查容器內部的一些配置文件…或者,你可能像我一樣,想在該容器中的二進制文件上放置一些 eBPF 探針(稍后將詳細介紹)。

不管原因是什么,在這篇文章中,我們將介紹一些可以用來檢查容器中的文件的方法。

我們將從研究容器文件系統的簡單和通常推薦的方法開始,并討論為什么它們不能總是工作。接下來,我們將對 Linux 內核如何管理容器文件系統有一個基本的了解,我們將利用這一了解以不同但仍然簡單的方式檢查文件系統。

方法一:Exec 到容器中

如果你快速搜索如何檢查容器的文件系統,你會發現一個常見的解決方案是使用 Docker 命令: 

  1. docker exec -it mycontainer /bin/bash 

這是一個很好的開始。如果它能滿足你的所有需求,你應該繼續使用它。

然而,這種方法的一個缺點是,它需要在容器中存在一個 shell。如果容器中沒有/bin/bash、/bin/sh 或其他 shell,那么這種方法將不起作用。例如,我們為 Pixie 項目構建的許多容器都是基于無 distroless 的,并且沒有包含一個 shell 來保持鏡像較小。在這些情況下,這種方法不起作用。

即使 shell 可用,你也無法訪問所有你習慣使用的工具。因此,如果容器中沒有安裝 grep,那么你也不能訪問 grep。這是另一個找更好工作的理由。

方法二:使用 nsenter

如果你再深入一點,就會意識到容器進程與 Linux 主機上的其他進程一樣,只是在命名空間中運行,以使它們與系統的其他部分隔離。

所以你可以使用 nsenter 命令來輸入目標容器的命名空間,使用類似這樣的東西: 

  1. # Get the host PID of the process in the container  
  2. PID=$(docker container inspect mycontainer | jq '.[0].State.Pid')  
  3. # Use nsenter to go into the container’s mount namespace.  
  4. sudo nsenter -m -t $PID /bin/bash 

它進入目標進程的掛載(-m)命名空間(-t $PID),并運行/bin/bash。進入掛載命名空間本質上意味著我們獲得容器所看到的文件系統視圖。

這種方法似乎比 docker 的 exec 方法更有前途,但也遇到了類似的問題:它要求目標容器中包含/bin/bash(或其他 shell)。如果我們輸入的不是掛載命名空間,我們仍然可以訪問主機上的文件,但是因為我們是在執行/bin/bash(或其他 shell)之前輸入掛載命名空間,所以如果掛載命名空間中沒有 shell,我們就不走運了。

方法三:使用 docker 復制

解決這個問題的另一種方法是簡單地將相關文件復制到主機,然后使用復制的文件。

要從正在運行的容器中復制選定的文件,可以使用: 

  1. docker cp mycontainer:/path/to/file file 

也可以用以下方法來快照整個文件系統: 

  1. docker export mycontainer -o container_fs.tar 

這些命令使你能夠檢查文件,當容器可能沒有 shell 或你需要的工具時,這些命令比前兩種方法有了很大的改進。

方法四:在主機上查找文件系統

復制方法解決了我們的許多問題,但是如果你試圖監視日志文件呢?或者,如果你試圖將 eBPF 探針部署到容器中的文件中,又該怎么辦呢?在這些情況下,復制是不起作用的。

我們希望直接從主機訪問容器的文件系統。容器的文件應該在主機的文件系統中,但是在哪里呢?

Docker 的 inspect 命令給了我們一個線索: 

  1. docker container inspect mycontainer | jq '.[0].GraphDriver' 

這給我們: 

  1.  
  2.   "Data": {  
  3.     "LowerDir": "/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab-init/diff:/var/lib/docker/overlay2/524a0d000817a3c20c5d32b79c6153aea545ced8eed7b78ca25e0d74c97efc0d/diff", 
  4.     "MergedDir": "/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/merged", 
  5.     "UpperDir": "/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/diff", 
  6.     "WorkDir": "/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/work"  
  7.   },  
  8.   "Name": "overlay2"  

讓我們來分析一下:

  •  LowerDir:包含容器內所有層的文件系統,最后一層除外
  •  UpperDir:容器最上層的文件系統。這也是反映任何運行時修改的地方。
  •  MergedDir:文件系統所有層的組合視圖。
  •  WorkDir:用于管理文件系統的內部工作目錄。

基于 overlayfs 的容器文件系統結構。

因此,要查看容器中的文件,只需查看 MergedDir 路徑。 

  1. sudo ls /var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/merged 

如果你想了解文件系統工作的更多細節,你可以查看 Martin Heinz 關于 overlay 文件系統的博客文章:https://martinheinz.dev/blog/44

方法五:/proc/<pid>/root

把最好的留到最后,還有一種從主機找到容器文件系統的更簡單的方法。使用容器內進程的宿主 PID,你可以簡單地運行: 

  1. sudo ls /proc/<pid>/root 

Linux 已經為你提供了進程掛載命名空間的視圖。

此時,你可能會想:為什么我們不采用這種方法,并將其變成一篇只有一行字的博客文章呢?但這都是關于旅程,對吧?

彩蛋:/proc/<pid>/mountinfo

出于好奇,方法四中討論的關于容器 overlay 文件系統的所有信息也可以直接從 Linux /proc 文件系統中發現。如果你查看/proc/<pid>/mountinfo,你會看到如下內容: 

  1. 2363 1470 0:90 / / rw,relatime master:91 - overlay overlay rw,lowerdir=/var/lib/docker/overlay2/l/YZVAVZS6HYQHLGEPJHZSWTJ4ZU:/var/lib/docker/overlay2/l/ZYW5O24UWWKAUH6UW7K2DGV3PB,upperdir=/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/diff,workdir=/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/work 
  2. 2364 2363 0:93 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw 
  3. 2365 2363 0:94 / /dev rw,nosuid - tmpfs tmpfs rw,size=65536k,mode=755,inode64  
  4. … 

在這里,你可以看到容器已經掛載了一個覆蓋文件系統作為它的根。它還報告與 docker inspect 報告相同類型的信息,包括容器文件系統的 LowerDir 和 UpperDir。它沒有直接顯示 MergedDir,但你可以直接使用 UpperDir 并將 diff 改為 merged,這樣你就可以看到容器的文件系統了。

我們在 Pixie 怎么用這個

在本博客的開頭,我提到了 Pixie 項目需要如何在容器上放置 eBPF 探針。為什么和如何?

Pixie 內部的 Stirling 模塊負責收集可觀察數據。由于是 k8s 原生的,所以收集的很多數據都來自于在容器中運行的應用程序。Stirling 還使用 eBPF 探針從它監視的進程中收集數據。例如,Stirling 在 OpenSSL 上部署 eBPF 探針來跟蹤加密的消息(如果你想了解更多有關這方面的細節,請參閱SSL 跟蹤博客[1])。

由于每個容器都捆綁了自己的 OpenSSL 和其他庫,因此 Stirling 部署的任何 eBPF 探針都必須位于容器內的文件上。因此,Stirling 使用本文中討論的技術在 K8s 容器中找到感興趣的庫,然后從主機將 eBPF 探針部署到這些二進制文件上。

下圖概述了在另一個容器中部署 eBPF 探針的工作方式。

Stirling 通過掛載主機文件系統在其他容器上部署 eBPF 探針,然后在主機上找到目標容器文件系統。

總結

下次當你需要檢查容器中的文件時,希望你能嘗試一下這些技巧。一旦你體驗到不再受容器有沒有 shell 限制的自由,你可能就再也不會回去了。只需要訪問/proc/<pid>/root! 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2010-06-04 19:12:38

Hadoop文件系統

2018-07-02 15:18:39

Linux文件系統

2021-03-10 08:02:58

Findmnt命令系統

2021-08-25 10:10:52

findmnt命令Linux

2023-07-13 23:35:06

系統Linux

2020-07-22 14:53:06

Linux系統虛擬文件

2013-05-27 14:46:06

文件系統分布式文件系統

2011-01-13 14:10:30

Linux文件系統

2014-01-24 09:58:45

fuse文件系統

2018-05-29 09:00:00

LinuxBTFS文件系統

2010-04-30 15:51:48

Unix系統

2012-09-19 13:48:33

pNFS文件系統

2021-07-09 19:04:55

Cache查找消息

2013-04-17 09:17:37

Linux文件系統系統清理工具

2019-09-20 10:04:45

Linux系統虛擬文件

2018-08-24 10:10:25

Linux文件系統技術

2009-04-08 15:36:46

LinuxLustre集群文件系統

2020-01-15 09:10:13

LinuxWindowsmacOS

2011-01-25 10:27:12

Linux 文件系統屬

2024-01-31 09:24:58

點贊
收藏

51CTO技術棧公眾號

国内精品写真在线观看| 成人精品影视| 欧美日韩加勒比精品一区| 欧美成人综合一区| 97国产精品久久久| 国产精品v欧美精品v日本精品动漫| 欧美专区日韩专区| 深夜福利国产精品| 日批视频免费看| 欧美黄色网页| 一区二区三区影院| 日本精品免费| 黄色av免费观看| 美女久久久精品| 欧美一级视频精品观看| 亚洲午夜精品福利| 高潮毛片又色又爽免费| 成人18夜夜网深夜福利网| 亚洲色图欧美在线| 久热国产精品视频一区二区三区| 波多野结衣视频网址| 欧美成人中文| 色综合伊人色综合网| 国产老熟女伦老熟妇露脸| 欧美激情福利| 国产精品拍天天在线| 国产精品久久波多野结衣| 国产成人av免费| 国产一区网站| 亚洲国产精彩中文乱码av在线播放 | 亚洲h片在线看| 97国产一区二区| 91久久久久久久久久久久久| 国产精品16p| 欧美在线资源| 久久久国产精品免费| 国产一二三四区在线| 亚洲人成伊人成综合图片| 精品毛片乱码1区2区3区| 在线观看中文av| 黄色网址在线免费播放| 国产毛片精品视频| 国产精品久久在线观看| 精品人妻一区二区三区免费看 | 黄色片网站在线| 国产拍欧美日韩视频二区| 久久亚裔精品欧美| 日日夜夜精品免费| 国产精品一区二区不卡| 国产精品日韩专区| 久久久精品毛片| 日本欧美在线观看| 国产精品国产三级国产专播精品人| 日本熟妇毛茸茸丰满| 另类春色校园亚洲| 欧美videofree性高清杂交| www.桃色.com| 亚洲精品高潮| 亚洲第一精品自拍| 免费日本黄色网址| 日韩av资源网| 亚洲乱码国产乱码精品精天堂 | 99精品久久只有精品| 国产区欧美区日韩区| 蜜桃久久一区二区三区| 99免费精品在线观看| 精品视频一区二区三区四区| 性高潮久久久久久久久久| 91亚洲精品乱码久久久久久蜜桃 | 亚洲摸摸操操av| 成人91视频| 欧美熟妇交换久久久久久分类| 国产成人精品www牛牛影视| 7m第一福利500精品视频| 欧美福利视频一区二区| 久久精品国语| 91精品国产综合久久香蕉922| 一级黄色大片网站| 国产一区二区在线观看免费| 99在线视频免费观看| 香蕉av在线播放| 国产亚洲精品福利| 中文字幕日韩精品一区二区| 日韩精品卡一| 欧美日韩一区二区在线| 在线观看免费成人av| 国产精品一区三区在线观看| 精品日韩一区二区三区免费视频| 97人妻精品一区二区三区免费| 韩国成人漫画| 欧美色视频在线观看| 久久人人爽人人片| 亚洲bt欧美bt精品777| 在线观看日韩av| 久久久久久久久久久久国产| 新狼窝色av性久久久久久| 成人国产精品日本在线| 人妻精品一区二区三区| 国产欧美日韩在线视频| 蜜臀av性久久久久蜜臀av| 欧产日产国产精品视频| 欧美精品久久天天躁| 亚洲精品女人久久久| 国产精品成人a在线观看| 97视频在线观看播放| 一区二区三区日| 91免费视频网| 日本大片免费看| 国语自产精品视频在线看抢先版结局| 欧美日韩精品高清| 亚洲国产综合视频| 亚洲成人免费| 久久精品成人欧美大片| 国产成人在线免费观看视频| 蜜桃视频一区二区| 久久亚洲综合网| 欧美性爽视频| 欧美精品久久久久久久多人混战| 国产精品成人99一区无码| 手机亚洲手机国产手机日韩| 欧美一区二区.| 韩国av免费在线观看| 18欧美亚洲精品| 一级黄色录像免费看| 成年美女黄网站色大片不卡| 欧美videos中文字幕| 小泽玛利亚一区二区免费| 久久亚洲不卡| 久久波多野结衣| 欧美理论电影| 日韩一区二区精品| 国产又粗又硬又长又爽| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产亚洲第一区| 日本精品600av| 欧美一区二视频| 永久免费看片视频教学| 日本vs亚洲vs韩国一区三区二区| 国产一区精品在线| 7777kkk亚洲综合欧美网站| 日韩写真欧美这视频| 中国毛片直接看| 韩国成人在线视频| 综合一区中文字幕| 四虎在线精品| 九九久久国产精品| 日本熟女一区二区| 国产成人在线网站| 久久久99精品视频| 香蕉成人app| 久久成人国产精品| 国产草草影院ccyycom| 一区精品在线播放| 在线播放av中文字幕| 亚洲国产精品综合久久久 | 日本免费观看视| 成人动漫av在线| 奇米影视首页 狠狠色丁香婷婷久久综合 | 亚洲黄色网址大全| 日韩二区三区在线观看| 国产精品亚洲第一区| av在线三区| 欧美精品xxxxbbbb| 亚洲女人久久久| 国产999精品久久久久久| 久久亚洲国产成人精品无码区| 粉嫩一区二区三区在线观看| 久久99精品久久久久久青青91| 国产精品久久久久久久成人午夜 | 日本一区视频在线观看| 日韩精品一区二区三区av| 色婷婷av一区二区三区在线观看| 亚洲天堂狠狠干| 亚洲激情中文1区| 国产伦精品一区三区精东| 久久婷婷av| 亚洲一区二区免费视频软件合集 | 欧美日韩午夜精品| 日韩视频中文字幕在线观看| 成人av在线一区二区| 老司机午夜av| 亚洲国产精品久久久天堂| 国产综合第一页| 国产69精品久久| 久久久久久12| 岛国大片在线观看| 日韩一级视频免费观看在线| 在线观看黄网站| 国产精品亚洲人在线观看| 波多野结衣综合网| 深夜福利一区| 国产999精品久久久| 黄色网址在线免费| 亚洲老司机av| 99热这里只有精品在线观看| 欧美午夜视频在线观看| 娇小11一12╳yⅹ╳毛片| av中文字幕在线不卡| 欧美成人三级在线播放| 国产一区二区欧美| 99超碰麻豆| 成人国产精品入口免费视频| 国模精品系列视频| 亚洲国产精品久久久久久6q| 色综合久久久久久久久| 国产精品老熟女一区二区| 久久久精品影视| 欧美一级视频在线| 久久都是精品| 国产精品成人久久电影| 欧美freesextv| 欧美日韩在线高清| 成人av地址| 亚洲综合成人婷婷小说| 日韩和的一区二在线| 亚洲色图17p| 免费观看国产视频| 欧美一区二区三区四区久久| 波多野结衣视频观看| 婷婷夜色潮精品综合在线| 日韩一级片av| 中文字幕一区二区三区在线播放| 国产福利在线观看视频| 国产激情视频一区二区在线观看| 国产精品人人妻人人爽人人牛| 午夜激情一区| 性欧美18一19内谢| 日本a口亚洲| 九9re精品视频在线观看re6| 国产精品2023| 国产精品亚洲一区| 一区二区视频| 成人自拍偷拍| 中文字幕一区二区三区四区久久 | 69sex久久精品国产麻豆| 亚洲一本二本| 佐佐木明希av| 91精品国产麻豆国产在线观看| 日本不卡一二三区| 欧美精美视频| 青娱乐国产91| 欧美精品乱码| 成人女保姆的销魂服务| 国产第一亚洲| 成人国产亚洲精品a区天堂华泰 | 国产精品久久久久av免费| 国产日韩电影| 国产精品爱久久久久久久| 欧美性猛交xxx高清大费中文| 98精品在线视频| 欧美bbbxxxxx| 97欧美精品一区二区三区| 55av亚洲| 日本欧美中文字幕| 高清成人在线| 国产日本欧美在线观看| 亚洲欧美专区| aaa级精品久久久国产片| 国产精品白丝av嫩草影院| 精品无人区一区二区三区| 人人精品亚洲| 视频一区免费观看| 99久久亚洲精品| 亚洲精品少妇一区二区| 亚洲国产午夜| 久久精品午夜福利| 老司机一区二区| 免费观看黄网站| 99v久久综合狠狠综合久久| 国产成人av一区二区三区不卡| 久久精品一区四区| 天海翼在线视频| 亚洲美女偷拍久久| 久久久久久久久久久久久久av| 黑人巨大精品欧美一区二区免费| 精品久久久久久亚洲综合网| 成人亚洲视频在线观看| 奇米色777欧美一区二区| 免费精品99久久国产综合精品应用| 欧美午夜精彩| 成人手机视频在线| 亚洲精品精选| 538任你躁在线精品免费| 国产麻豆精品视频| 亚洲av无码一区二区三区网址| 久久久久久久久97黄色工厂| 久久福利免费视频| 黄色91在线观看| 国产一区二区三区中文字幕| 精品奇米国产一区二区三区| 精品电影在线| 久久99国产综合精品女同| 五月激情久久| 国产精品日韩一区二区三区| 日本不卡电影| 日韩在线一级片| 国产精品综合av一区二区国产馆| 久久久久亚洲av无码专区首jn| 久久无码av三级| 欧美爱爱小视频| 欧美中文字幕一区二区三区 | 欧美成人三级在线| 国产视频网站在线| 国语自产精品视频在线看一大j8 | 欧美日韩综合| 午夜激情在线观看视频| 国产福利不卡视频| 久久婷婷五月综合| 亚洲成av人片在线观看| 国产影视一区二区| 亚洲人在线观看| 天堂√8在线中文| 国产精华一区| 中国精品18videos性欧美| 免费看污黄网站| 91免费看片在线观看| 国产精彩视频在线观看| 制服.丝袜.亚洲.另类.中文 | 美女精品久久| 亚洲欧美国产不卡| 天堂在线一区二区| 先锋资源av在线| 亚洲国产视频a| 国内毛片毛片毛片毛片| 日韩在线视频网站| av在线播放一区| 欧美三级电影在线播放| 99国产精品| 免费黄色三级网站| 亚洲综合视频在线| 99热这里是精品| 久久精品国产精品亚洲| 欧美大片网站| 亚洲欧美国产不卡| 美腿丝袜亚洲色图| 女人黄色一级片| 欧美日韩亚洲国产综合| 视频免费一区| 国产精品国产亚洲伊人久久| 国产中文精品久高清在线不| av动漫在线看| 久久众筹精品私拍模特| 伊人中文字幕在线观看| 亚洲精品网址在线观看| 在线观看福利电影| 欧美激情论坛| 日韩电影在线一区二区| 黄色三级生活片| 欧美日韩不卡在线| 久草资源在线| 91av免费看| 亚洲国产高清一区| 亚洲欧美日本一区| 天天亚洲美女在线视频| 手机福利小视频在线播放| 亚洲欧美日韩图片| 日韩电影网站| 亚洲精品9999| 激情欧美一区二区| 欧美色图亚洲视频| 精品三级在线看| 天堂网在线最新版www中文网| 九色91在线视频| 热久久免费视频| 欧美 日韩 国产 一区二区三区| 欧美一卡二卡在线| 9lporm自拍视频区在线| 欧美高清视频一区| 精品一区二区三区免费| 久久久久久久久99| 亚洲毛片在线观看.| 不卡亚洲精品| 欧美视频在线第一页| 91免费在线播放| 国产一区二区小视频| 国内精品在线一区| 欧美日韩国产高清电影| xxx中文字幕| 欧美午夜激情视频| 免费黄网站在线| 国产精品一区视频网站| 午夜在线播放视频欧美| 熟女av一区二区| 日韩电影视频免费| 欧美一级做a| 日韩av综合在线观看| 中文字幕制服丝袜一区二区三区 | 久久66热偷产精品| 久久免费少妇高潮99精品| 亚洲欧美另类中文字幕| 成人在线视频www| 免费观看日韩毛片| 中文字幕一区二区三区乱码在线| 性欧美8khd高清极品| 国产大片精品免费永久看nba| 日本一区二区在线看| 国产免费人做人爱午夜视频| 中文字幕欧美一| 日本福利午夜视频在线| 亚洲一区免费网站|