docker-compose實現(xiàn)wireshark對linux主機進行抓包
起因
最近部門搭建的harbor鏡像倉庫因為更改ip地址,導(dǎo)致使用 docker pull 命令時,發(fā)生錯誤,如下:
# docker pull 10.1.27.89:9000/vappserver/test-image:1.0 Error response from daemon: Head "http://10.1.27.89:9000/v2/vappserver/test-image/manifests/1.0": Get "http://10.1.27.240:9000/service/token?account=admin&scope=repository%3Avappserver%2Ftest-image%3Apull&service=harbor-registry": dial tcp 10.1.27.240:9000: connect: no route to host
仔細看錯誤提示,我們訪問的是“10.1.27.89:9000”,緣何卻訪問了“http://10.1.27.240:9000/service/token”?而這里的 “10.1.27.240”剛好就是harbor的舊ip地址。
由于不了解docker pull命令背后的執(zhí)行過程、以及和harbor倉庫之間的通訊協(xié)議究竟是什么(http協(xié)議嗎?)所以想要嘗試通過抓包方式查看下docker pull命令的執(zhí)行過程、以及為什么訪問了舊的ip?
網(wǎng)上檢索一番,發(fā)現(xiàn)有開源的rpcapd程序,可以結(jié)合wireshark的“遠程接口”功能,在windows環(huán)境的wireshark中監(jiān)聽linux主機的網(wǎng)絡(luò)通訊。
網(wǎng)上內(nèi)容基本都需要源碼下載、本地編譯。按照慣例,先查docker鏡像,果然有現(xiàn)成可用的。
以下做一下記錄備忘。
docker-compose配置
version: '3.3' services: wireshark-rpcapd: # 參考:https://github.com/rpcapd-linux/rpcapd-linux image: soveren/rpcapd:v0.1.3 # 直接使用主機的網(wǎng)絡(luò),所以不再需要端口映射 network_mode: host command: - /bin/rpcapd # 僅僅使用ipv4 - "-4" # 不限制客戶端連接 (否則可以限定wireshark所在的ip才能連接) - -n # 監(jiān)聽的端口,在wireshark中,使用ip+此處的端口連接rpcapd - "-p 2002"
wireshark的配置
在wireshark中,選擇捕獲-選項,繼續(xù)選擇“管理接口”,我們添加上遠程接口,其中ip為linux主機ip,端口即docker-compose文件中command部分配置的端口,例如“2002”
由于在linux主機中啟動了多個docker容器,創(chuàng)建了多個虛擬網(wǎng)絡(luò)接口,所以接下來對網(wǎng)絡(luò)接口的掃描稍慢。稍等片刻,我們在自動列出的網(wǎng)絡(luò)接口中,選擇有用的接口,如主機的網(wǎng)絡(luò)接口(例如名字ens33)、主機的環(huán)回地址接口(即127.0.0.1,名字是lo或者loopback),把剩余網(wǎng)絡(luò)接口前面的勾選項去掉即可。
最終如下:
然后就可以繼續(xù)愉快的玩耍了!
以上就是docker-compose實現(xiàn)wireshark對linux主機進行抓包的詳細內(nèi)容,更多關(guān)于wireshark抓包linux主機的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker容器化應(yīng)用與結(jié)構(gòu)
本文詳細講解了Docker的容器化應(yīng)用與結(jié)構(gòu),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Docker 容器互聯(lián)互通的實現(xiàn)方法
這篇文章主要介紹了Docker 容器互聯(lián)互通,本文講解不同網(wǎng)絡(luò)下的容器可以通過加入同一個docker網(wǎng)絡(luò),來訪問該docker網(wǎng)絡(luò)下的容器,并且既可以通過容器ip也可以通過容器名連接,非常方便,需要的朋友可以參考下2022-10-10Docker在Windows系統(tǒng)中的安裝和使用方法詳解
這篇文章主要給大家介紹了關(guān)于Docker在Windows系統(tǒng)中的安裝和使用方法,Docker允許開發(fā)中將應(yīng)用、依賴、函數(shù)庫、配置一起打包,形成可移植鏡像Docker應(yīng)用運行在容器中,需要的朋友可以參考下2023-09-09Docker部署Logstash同步Mysql數(shù)據(jù)到ES方式
本文介紹了如何搭建ELK(Elasticsearch, Logstash, Kibana)日志系統(tǒng),包括配置文件準(zhǔn)備、Logstash與Elasticsearch部署、驅(qū)動文件準(zhǔn)備、配置文件編輯、容器操作以及日志查看等步驟,文章內(nèi)容是作者的個人經(jīng)驗分享2024-10-10Windows的docker刪除容器后WSL2磁盤空間不釋放的問題的解決方法
很多同學(xué)拉取鏡像使用一段時間后發(fā)現(xiàn) C 盤快滿了,把之前用過的鏡像和容器刪除,發(fā)現(xiàn) WSL 掛載目錄的虛擬磁盤大小沒有變化,非常的奇怪,所以本文介紹了Windows的docker刪除容器后WSL2磁盤空間不釋放的問題的解決方法,需要的朋友可以參考下2024-12-12windows宿主機和docker容器設(shè)置掛載共享文件夾的步驟
這篇文章主要介紹了windows宿主機和docker容器設(shè)置掛載共享文件夾的步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11