Docker 컨테이너의 들어오고 나가는 메시지를 캡처하는 방법

PHPz
풀어 주다: 2023-04-11 09:25:57
원래의
1576명이 탐색했습니다.

Docker는 애플리케이션을 빠르게 배포하고 실행하는 데 사용할 수 있는 컨테이너화 기술입니다. 그러나 실제 작업 중에는 컨테이너를 더 잘 모니터링하고 관리하기 위해 Docker 컨테이너의 들어오고 나가는 메시지를 이해해야 하는 경우가 있습니다.

이 기사에서는 tcpdump 및 Wireshark를 사용하여 패킷을 캡처하는 것을 포함하여 Docker 컨테이너의 들어오고 나가는 패킷을 캡처하는 방법을 소개합니다.

1. tcpdump를 사용하여 패킷 캡처

  1. tcpdump 설치

다음 명령을 사용하여 Linux 시스템에 tcpdump를 설치합니다.

sudo apt-get install tcpdump
로그인 후 복사
  1. 대상 컨테이너의 ID 찾기

다음 명령을 사용하여 실행 중인 컨테이너 ID:

docker ps
로그인 후 복사
  1. 컨테이너 입력

다음 명령을 사용하여 컨테이너의 셸 환경에 들어갑니다.

docker exec -it <ContainerID> /bin/bash
로그인 후 복사

그 중 <ContainerID>는 대상의 ID입니다. 컨테이너. <ContainerID> 为目标容器的 ID。

  1. 抓包

在容器内执行以下命令抓取进出报文:

tcpdump -i any -s 0 -w /tmp/docker.pcap
로그인 후 복사

其中,-i any 表示监听所有网卡,-s 0 表示抓取所有数据包,-w 参数指定将抓取的报文写入指定文件中。在上述命令中,我们将进出报文写入 /tmp/docker.pcap 文件中。

  1. 退出容器

在容器内执行以下命令退出容器:

exit
로그인 후 복사
  1. 复制 pcap 文件到本地

使用以下命令将容器中的 /tmp/docker.pcap 文件复制到本地:

docker cp <ContainerID>:/tmp/docker.pcap .
로그인 후 복사

其中,<ContainerID> 为目标容器的 ID。

  1. 查看报文

使用 Wireshark 打开 docker.pcap 文件,即可查看容器的进出报文。

二、使用 Wireshark 抓包

  1. 安装 Wireshark

在 Linux 系统中使用以下命令安装 Wireshark:

sudo apt-get install wireshark
로그인 후 복사
  1. 找到目标容器的 IP 地址

使用以下命令获取正在运行的容器 IP 地址:

docker inspect <ContainerID> | grep IPAddress
로그인 후 복사

其中,<ContainerID> 为目标容器的 ID。

  1. 运行 Wireshark

在终端中输入以下命令启动 Wireshark:

sudo wireshark
로그인 후 복사

进入 Wireshark 界面后,选择需要监听的网卡,然后输入下面的过滤器:

ip.addr == <ContainerIP>
로그인 후 복사

其中,<ContainerIP>

    패킷 캡처
컨테이너에서 다음 명령을 실행하여 들어오고 나가는 패킷을 캡처합니다.

rrreee

그 중 -i any는 모든 네트워크 카드를 모니터링한다는 의미, -s 0 모든 데이터 패킷을 캡처함을 나타내며 -w 매개변수는 캡처된 패킷을 지정된 파일에 쓰도록 지정합니다. 위 명령에서는 들어오고 나가는 패킷을 /tmp/docker.pcap 파일에 씁니다.
  1. 컨테이너 종료

컨테이너에서 다음 명령을 실행하여 컨테이너를 종료합니다.

rrreee

    pcap 파일을 로컬에 복사합니다. 🎜🎜🎜다음 명령을 사용하여 / 컨테이너의 tmp/docker.pcap 파일 로컬로 복사: 🎜rrreee🎜여기서 <ContainerID>는 대상 컨테이너의 ID입니다. 🎜
      🎜메시지 보기🎜🎜🎜Wireshark를 사용하여 docker.pcap 파일을 열어 컨테이너의 들어오고 나가는 메시지를 봅니다. 🎜🎜2. Wireshark를 사용하여 패킷 캡처🎜🎜🎜Wireshark 설치🎜🎜🎜다음 명령을 사용하여 Linux 시스템에 Wireshark를 설치합니다.🎜rrreee🎜🎜대상 컨테이너의 IP 주소 찾기🎜🎜🎜다음 명령을 사용하여 패킷을 캡처합니다. 실행 중인 컨테이너의 IP 주소: 🎜rrreee🎜여기서 <ContainerID>는 대상 컨테이너의 ID입니다. 🎜🎜🎜Wireshark 실행🎜🎜🎜Wireshark를 시작하려면 터미널에 다음 명령을 입력하세요. 🎜rrreee🎜Wireshark 인터페이스에 들어간 후 모니터링해야 하는 네트워크 카드를 선택한 후 다음 필터를 입력하세요. 🎜rrreee🎜그 중 , <ContainerIP> 는 대상 컨테이너의 IP 주소입니다. 🎜🎜🎜패킷 캡처🎜🎜🎜컨테이너의 들어오고 나가는 패킷 캡처를 시작하고 Wireshark에서 "캡처 시작" 버튼을 클릭하세요. 🎜🎜🎜메시지 보기🎜🎜🎜Wireshark에서 컨테이너의 들어오고 나가는 메시지를 볼 수 있습니다. 🎜🎜이 기사에서는 tcpdump 및 Wireshark를 사용하여 Docker 컨테이너의 들어오고 나가는 메시지를 캡처하는 방법을 소개합니다. 이는 Docker 컨테이너를 더 잘 모니터링하고 관리하는 데 도움이 됩니다. 동시에 패킷 캡처에는 특정 위험이 있을 수 있으므로 주의해서 사용해야 한다는 점에 유의해야 합니다. 🎜

위 내용은 Docker 컨테이너의 들어오고 나가는 메시지를 캡처하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿