반응형
도커 컨테이너를 구동하고 호스트 운영체제에서 컨테이너로 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이라서 안된다니... 당시에는 우분투를 개발장비로 썼었습니다.
반응형
댓글