티스토리 뷰

카테고리 없음

Docker Host에서 Container 로 ping 날리기 for Mac

드라이빙 인사이트 2019. 11. 25. 06:54
반응형

Docker 엔진 위에 하둡 클러스터를 띄워놓고 호스트 머신에서 IntelliJ를 통해 Docker에 구축해놓은 하둡 클러스터로 접근하는 테스트를 해봤다. (코드 분석 때문에 IntelliJ의 디버깅을 사용하고 싶었는데 실제로 구축해놓은 테스트용 하둡 클러스터에 붙기보다는 테스트를 위해 즉석으로 도커에 띄운 클러스터로 접근하는 것을 해보고 싶었다.)

 

구축한 하둡 클러스터의 데이터 노드들은 172.17.0.x 의 내부 IP를 할당 받았고 같은 포트로 구동되어 있었다. IntelliJ로 DFSClient 예제를 작성하여 도커에 떠있는 하둡 클러스터로 붙어서 돌려보는데 동작이 네트워크 IO 쪽에서 멈춰버렸다.

 

네트워크 문제인가해서 'ping 172.17.0.2'로 컨테이너에 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
...

안된다..

 

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.

Mac 버전에서는 Host 머신에서 컨테이너로 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이라서 안된다니... 당시에는 우분투를 개발장비로 썼었다.

 

이를 해결 할 수 있는 방법은 딱히 떠오르지는 않는데 좀 더 찾아보고 해결 방법이 있으면 다시 정리해야겠다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함