iptables가 docker 컨테이너로 다시 리디렉션될 수 있나요?

iptables가 docker 컨테이너로 다시 리디렉션될 수 있나요?

도커 네트워크에 IP가 172.20.0.2인 도커 컨테이너가 있다고 가정합니다.

이 도커 컨테이너 내부에는 두 개의 프로세스가 실행되고 있습니다.

  1. 포트 8000을 수신하는 http 서버는 항상 "hello"라고 응답합니다.
  2. 계속 연결을 시도하는 http 클라이언트http://example.com

ip 테이블을 사용하여 가능합니까?주인해당 컨테이너의 모든 아웃바운드 트래픽을 동일한 컨테이너로 다시 전달합니다.

따라서 위 시나리오에서 example.com에 대한 http 요청은 실제로 동일한 컨테이너 내의 포트 8000으로 이동하여 "hello"를 반환합니다.

이것이 docker에 없으면 다음이 작동할 것 같습니다. 나는 가까운가?

iptables -t nat -A OUTPUT -s 172.20.0.0/16 -j REDIRECT --to-ports 8000

하지만 이것은 호스트에서 8000으로 전달되는 것 뿐이라고 생각합니다.

답변1

/etc/hostsDocker 컨테이너에서 파일을 편집하는 것이 좋습니다 .

172.20.0.2  example.com

이는 클라이언트가 연결을 시도할 때마다http://example.com:8000HTTP를 통해 트래픽은 172.20.0.2:8000의 Docker 컨테이너로 전달되고 예상대로 "hello" 응답이 수신됩니다.

관련 정보