Backend/Docker

도커 네트워크

olsohee 2024. 6. 25. 16:45

네트워크에서 IP 주소의 고갈을 막기 위해 사설 IP와 공인 IP를 나누는 NAT이라는 개념이 등장했다. 도커에서도 이와 유사하게 하나의 컴퓨터에서 여러 개의 컨테이너를 구동하는 경우, 각 컨테이너마다 IP 주소가 할당되는데, 이 IP 주소는 도커가 설치된 호스트 내에서만 쓸 수 있는 IP로 외부와의 통신이 불가능하다. 그러면 각 컨테이너는 어떻게 외부와의 네트워크 통신이 가능한 걸까?

 

  • eth0
    • 호스트의 eth0은 실제 우리가 외부와 연결할 때 사용하는 호스트 네트워크 인터페이스이다.
    • 컨테이너 안에 eth0은 veth 가상 인터페이스를 통해 외부와 통신할 수 있게 되는 것이다.
  • veth
    • 컨테이너가 시작될 때마다 호스트에 veth(virtual eth)라는 가상의 네트워크 인터페이스가 생성된다.
    • 컨테이너가 외부와 네트워크 통신이 가능하게 하기 위해 생성되는 가상의 인터페이스이다. 
  • docker0
    • docker0 브리지는 각 veth 인터페이스와 바인딩되어 호스트의 eth0 인터페이스와 이어주는 역할을 한다.
    • 이를 통해 도커가 관리하는 가상 네트워크 안에서 컨테이너들이 네트워크 통신을 할 수 있다

Reference

 

'Backend > Docker' 카테고리의 다른 글

도커 알아보기  (0) 2024.06.25
깃허브 액션, 도커, EC2, RDS를 통해 배포하기  (0) 2024.04.26
도커(Docker) 사용하기  (1) 2024.04.24