본문 바로가기
DevOps

Docker Network 명령어

by 어렵다어려웡 2021. 7. 10.

도커 컨테이너는 격리된 환경에서 돌아간다 따라서

기본적으로 다른 컨테이너와 통신이 불가능하다.

 

하지만 여러개의 컨테이너를 하나의 Docker 네트워크에 연결시키면 서로 통신이 가능하다.

 

1. 네트워크 조회

docker network ls

기본적으로 bridge, host, none - 3가지는 기본값으로 생성되는 네트워크 이다.

  • bridge 네트워크는 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 서로 소통할 수 있도록 해줍니다.
  • host 네트워크는 컨터이너를 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 돌리기 위해서 사용됩니다.
  • overlay 네트워크는 여러 호스트에 분산되어 돌아가는 컨테이너들 간에 네트워킹을 위해서 사용됩니다.

 

2. 네트워크 생성

docker network create '네트워크 명'

추가된 네트워크는 ls 명령어로 확인이 가능하고, 별다른 옵션을 주지 않는다면 기본적으로 bridge로 생성된다.

 

 

3. 네트워크 상세정보 확인

docker network inspect '네트워크 명'

 

inspect 명령어로 확인이 가능하며 Container 의 정보가 비어있는 것을 알 수 있다.

Container는 해당 네트워크에 연결되어 있는 컨테이너들의 정보가 들어가게 된다.

 

만약 컨테이너를 docker 명령어를 통해 옵션없이 실행을 하게 되면 bridge의 기본 네트워크에 붙게된다.

 

그래서 특정 네트워크에 붙여서 실행하고 싶다면 ( A - 네트워크 , B - 컨테이너 명 )

docker run -itd --name B --network A busybox

 

4. 네트워크의 컨테이너 해제 ( A - 네트워크 , B - 컨테이너 명 )

docker network disconnect A B

A라는 네트워크에 연결된 B 컨테이너를  해제할 경우 사용한다.

 

 

 

5.  네트워크 연결확인

docker exec A ping B

두 컨테이너의 연결을 확인하기 위한 방법이다.

왼쪽 컨테이너를 기준으로 오른쪽 컨테이너와 소통이 되는지 확인한다.

 

 

6. 네트워크 삭제

 

docker network rm A

 

제거하려는 네트워크에서 실행중인 컨테이너가 있을경우 실행되지않는다.

컨테이너를 중지시킨 뒤 사용해야한다.

 

7. 네트워크 청소(미사용 삭제)

docker network prune

네트워크상에서 컨테이너와 연결되지 않은 네트워크를 전부 삭제하는 명령어