Docker network

Younghwan Cha·2022년 11월 28일
0

Docker

목록 보기
13/18
post-thumbnail

  • 도커는 컨테이너에 내부 IP를 순차적으로 할당

  • 내부 IP는 컨테이너를 재시작할 때마다 변경될 수 있음

  • 내부 IP는 도커가 설치된 호스트, 즉 내부망에서만 쓸 수 있는 IP이므로 외부와 연결될 필요가 있음

  • 컨테이너를 시작할 때마다 호스트에 veth(Virtual Ethernet) 라는 네트워크 인터페이스를 생성


도커 컨테이너끼리의 소통을 어떻게 이루어질까?
이에 대한 해답은 docker network 를 통해서 얻을 수 있다.

docker network list

> NETWORK ID     NAME      DRIVER    SCOPE
0f62c8168040   bridge    bridge    local
89f060622375   host      host      local
6f98b435e86b   none      null      local

위와 같이 docker network 목록을 얻을 수 있다.
새로운 network 는 아래와 같이 추가 할 수 있다.

docker network create --driver bridge test-network

> NETWORK ID     NAME           DRIVER    SCOPE
0f62c8168040   bridge         bridge    local
89f060622375   host           host      local
6f98b435e86b   none           null      local
5f4b59bb3bd4   test-network   bridge    local

컨테이너를 특정 네트워크에 연결하려면 컨테이너를 다음과 같이 생성하면 된다.

docker run -itd --name cont1 --network test-network alpine

docker run -itd --name cont2 --network test-network alpine

상단과 같이 cont1, cont2 가 같은 네트워크인 test-network 에 포함되어 있을 경우,
ip 가 아닌 해당 컨테이너의 이름으로 서로에게 접근이 가능하다.
예를 들어서, cont1 에서 cont2 로 하단과 같이 ping 을 보내는 것이 가능하다

ping -c 2 cont2
profile
개발 기록

0개의 댓글