Docker는 애플리케이션을 빠르게 배포하고 실행하는 데 사용할 수 있는 컨테이너화 기술입니다. 그러나 실제 작업 중에는 컨테이너를 더 잘 모니터링하고 관리하기 위해 Docker 컨테이너의 들어오고 나가는 메시지를 이해해야 하는 경우가 있습니다.
이 기사에서는 tcpdump 및 Wireshark를 사용하여 패킷을 캡처하는 것을 포함하여 Docker 컨테이너의 들어오고 나가는 패킷을 캡처하는 방법을 소개합니다.
1. tcpdump를 사용하여 패킷 캡처
다음 명령을 사용하여 Linux 시스템에 tcpdump를 설치합니다.
sudo apt-get install tcpdump
다음 명령을 사용하여 실행 중인 컨테이너 ID:
docker ps
다음 명령을 사용하여 컨테이너의 셸 환경에 들어갑니다.
docker exec -it <ContainerID> /bin/bash
그 중 <ContainerID>
는 대상의 ID입니다. 컨테이너. <ContainerID>
为目标容器的 ID。
在容器内执行以下命令抓取进出报文:
tcpdump -i any -s 0 -w /tmp/docker.pcap
其中,-i any
表示监听所有网卡,-s 0
表示抓取所有数据包,-w
参数指定将抓取的报文写入指定文件中。在上述命令中,我们将进出报文写入 /tmp/docker.pcap 文件中。
在容器内执行以下命令退出容器:
exit
使用以下命令将容器中的 /tmp/docker.pcap 文件复制到本地:
docker cp <ContainerID>:/tmp/docker.pcap .
其中,<ContainerID>
为目标容器的 ID。
使用 Wireshark 打开 docker.pcap 文件,即可查看容器的进出报文。
二、使用 Wireshark 抓包
在 Linux 系统中使用以下命令安装 Wireshark:
sudo apt-get install wireshark
使用以下命令获取正在运行的容器 IP 地址:
docker inspect <ContainerID> | grep IPAddress
其中,<ContainerID>
为目标容器的 ID。
在终端中输入以下命令启动 Wireshark:
sudo wireshark
进入 Wireshark 界面后,选择需要监听的网卡,然后输入下面的过滤器:
ip.addr == <ContainerIP>
其中,<ContainerIP>
rrreee
그 중-i any
는 모든 네트워크 카드를 모니터링한다는 의미, -s 0
모든 데이터 패킷을 캡처함을 나타내며 -w
매개변수는 캡처된 패킷을 지정된 파일에 쓰도록 지정합니다. 위 명령에서는 들어오고 나가는 패킷을 /tmp/docker.pcap 파일에 씁니다. rrreee
<ContainerID>
는 대상 컨테이너의 ID입니다. 🎜<ContainerID>
는 대상 컨테이너의 ID입니다. 🎜🎜🎜Wireshark 실행🎜🎜🎜Wireshark를 시작하려면 터미널에 다음 명령을 입력하세요. 🎜rrreee🎜Wireshark 인터페이스에 들어간 후 모니터링해야 하는 네트워크 카드를 선택한 후 다음 필터를 입력하세요. 🎜rrreee🎜그 중 , <ContainerIP>
는 대상 컨테이너의 IP 주소입니다. 🎜🎜🎜패킷 캡처🎜🎜🎜컨테이너의 들어오고 나가는 패킷 캡처를 시작하고 Wireshark에서 "캡처 시작" 버튼을 클릭하세요. 🎜🎜🎜메시지 보기🎜🎜🎜Wireshark에서 컨테이너의 들어오고 나가는 메시지를 볼 수 있습니다. 🎜🎜이 기사에서는 tcpdump 및 Wireshark를 사용하여 Docker 컨테이너의 들어오고 나가는 메시지를 캡처하는 방법을 소개합니다. 이는 Docker 컨테이너를 더 잘 모니터링하고 관리하는 데 도움이 됩니다. 동시에 패킷 캡처에는 특정 위험이 있을 수 있으므로 주의해서 사용해야 한다는 점에 유의해야 합니다. 🎜위 내용은 Docker 컨테이너의 들어오고 나가는 메시지를 캡처하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!