Docker ist eine Containerisierungstechnologie, mit der Anwendungen schnell bereitgestellt und ausgeführt werden können. Während des tatsächlichen Betriebs müssen wir jedoch manchmal die eingehenden und ausgehenden Nachrichten des Docker-Containers verstehen, um den Container besser überwachen und verwalten zu können.
In diesem Artikel erfahren Sie, wie Sie die eingehenden und ausgehenden Pakete des Docker-Containers erfassen, einschließlich der Verwendung von tcpdump und Wireshark zum Erfassen von Paketen.
1. Verwenden Sie tcpdump, um Pakete zu erfassen tcpdump installieren:
sudo apt-get install tcpdump
Verwenden Sie den folgenden Befehl, um die laufende Container-ID zu erhalten:
docker ps
docker exec -it <ContainerID> /bin/bash
tcpdump -i any -s 0 -w /tmp/docker.pcap
<ContainerID>
为目标容器的 ID。在容器内执行以下命令抓取进出报文:
exit
其中,-i any
表示监听所有网卡,-s 0
表示抓取所有数据包,-w
参数指定将抓取的报文写入指定文件中。在上述命令中,我们将进出报文写入 /tmp/docker.pcap 文件中。
在容器内执行以下命令退出容器:
docker cp <ContainerID>:/tmp/docker.pcap .
使用以下命令将容器中的 /tmp/docker.pcap 文件复制到本地:
sudo apt-get install wireshark
其中,<ContainerID>
为目标容器的 ID。
使用 Wireshark 打开 docker.pcap 文件,即可查看容器的进出报文。
二、使用 Wireshark 抓包
在 Linux 系统中使用以下命令安装 Wireshark:
docker inspect <ContainerID> | grep IPAddress
使用以下命令获取正在运行的容器 IP 地址:
sudo wireshark
其中,<ContainerID>
为目标容器的 ID。
在终端中输入以下命令启动 Wireshark:
ip.addr == <ContainerIP>
进入 Wireshark 界面后,选择需要监听的网卡,然后输入下面的过滤器:
rrreee其中,<ContainerIP>
Among Für sie bedeutet -i any
die Überwachung aller Netzwerkkarten, -s 0
bedeutet die Erfassung aller Datenpakete und der Parameter -w
gibt an Schreiben Sie die erfassten Pakete in die angegebene Datei. Im obigen Befehl schreiben wir die ein- und ausgehenden Pakete in die Datei /tmp/docker.pcap.
Führen Sie den folgenden Befehl im Container aus, um den Container zu verlassen:
rrreee<ContainerID>
die ID des Zielcontainers ist.
<ContainerID>
die ID des Zielcontainers. #🎜🎜##🎜🎜##🎜🎜#Run Wireshark#🎜🎜##🎜🎜##🎜🎜#Geben Sie den folgenden Befehl in das Terminal ein, um Wireshark zu starten: #🎜🎜#rrreee#🎜🎜#Nach dem Aufrufen von Wireshark Schnittstelle, wählen Sie die Netzwerkkarte aus, die überwacht werden muss, und geben Sie dann den folgenden Filter ein: #🎜🎜#rrreee#🎜🎜# Darunter ist <ContainerIP>
die IP-Adresse des Zielcontainers . #🎜🎜##🎜🎜##🎜🎜#Paket erfassen#🎜🎜##🎜🎜##🎜🎜#Starten Sie die Erfassung der eingehenden und ausgehenden Pakete des Containers und klicken Sie in Wireshark auf die Schaltfläche „Erfassung starten“. #🎜🎜##🎜🎜##🎜🎜#Nachrichten anzeigen #🎜🎜##🎜🎜##🎜🎜#Sie können die eingehenden und ausgehenden Nachrichten des Containers in Wireshark anzeigen. #🎜🎜##🎜🎜#In diesem Artikel wird erläutert, wie Sie mit tcpdump und Wireshark die eingehenden und ausgehenden Nachrichten von Docker-Containern erfassen, was uns dabei helfen kann, Docker-Container besser zu überwachen und zu verwalten. Gleichzeitig ist zu beachten, dass die Paketerfassung gewisse Risiken birgt und mit Vorsicht eingesetzt werden sollte. #🎜🎜#Das obige ist der detaillierte Inhalt vonSo erfassen Sie die eingehenden und ausgehenden Nachrichten eines Docker-Containers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!