본문 바로가기
카테고리 없음

[Docker] Host에서 Container로 Ping 날리기 (Docker for mac)

by 왕 달팽이 2020. 3. 12.
반응형

도커 컨테이너를 구동하고 호스트 운영체제에서 컨테이너로 Ping을 날리는 테스트를 해봤습니다. 도커 컨테이너들은 172.17.0.x라는 내부 IP를 할당받게 됩니다. 호스트 운영체제에서 특정 컨테이너로 Ping을 날려보니 다음과 같은 응답이 왔습니다.

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
...

Ping이 날라가지 않습니다.

Docker desktop for macOS

이와 관련해서 구글링을 해봤습니다. 문제의 원인은 도커 문서에서 찾을 수 있었습니다.(링크 : Networking features in Docker Desktop for Mac)

'Networking features in Docker Desktop for Mac' 문서를 보면 다음과 같은 안내를 찾아볼 수 있습니다.

I cannot ping my containers
Docker Desktop for Mac can't route traffic to cotainers.

제가 사용하던 macOS에서는 호스트 머신에서 컨테이너로 ping을 날릴 수 없다는 안내입니다. 호스트에서 컨테이너로 접근하는 방법은 포트 포워딩이나 프록시역할을 하는 컨테이너를 띄워서 우회 접근하는 방법밖에 없는것 같습니다.

아무튼 이 문서를 읽고 바로 리눅스로 접속해서 컨테이너를 띄우고 Ping을 날려봤습니다.

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.013 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.010 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.020 ms
64 bytes from 172.17.0.2: icmp_seq=5 ttl=64 time=0.014 ms
64 bytes from 172.17.0.2: icmp_seq=6 ttl=64 time=0.010 ms

잘 동작합니다;;;

예전에 DB 엔진 개발일을 할 때 테스트용 RDBMS 클러스터를 도커에 구축해서 테스트했던 적이 있었는데 분명 그 때는 별다른 설정없이 내부 IP를 이용해서 테스트를 했던 기억이 있었는데 단순히 Mac이라서 안된다니... 당시에는 우분투를 개발장비로 썼었습니다.

반응형

댓글