docker network connect

docker network connect

docker network connect 명령은 컨테이너를 네트워크에 연결합니다.

출처: 문서

본문

컨테이너를 네트워크에 연결하는 명령어예요. 이름이나 ID로 컨테이너를 연결할 수 있어요. 연결되면 컨테이너는 같은 네트워크의 다른 컨테이너와 통신할 수 있어요.

구분 내용
Description 컨테이너를 네트워크에 연결
Usage docker network connect [OPTIONS] NETWORK CONTAINER

옵션 (Options)

옵션 기본값 설명
--alias 컨테이너에 네트워크 스코프 별칭 추가
--driver-opt 네트워크용 드라이버 옵션
--gw-priority 가장 높은 gw-priority가 기본 게이트웨이를 제공. 양수·음수 값 허용
--ip IPv4 주소 (예: 172.30.100.104)
--ip6 IPv6 주소 (예: 2001:db8::33)
--link 다른 컨테이너에 링크 추가
--link-local-ip 컨테이너에 링크-로컬 주소 추가

예시 (Examples)

실행 중인 컨테이너를 네트워크에 연결

$ docker network connect multi-host-network container1

컨테이너 시작 시 네트워크에 연결

docker run --network=<network-name> 옵션을 사용해 컨테이너를 시작하면서 즉시 네트워크에 연결할 수도 있어요.

$ docker run -itd --network=multi-host-network busybox

컨테이너가 특정 네트워크에서 사용할 IP 주소 지정 (--ip)

컨테이너 인터페이스에 할당하고 싶은 IP 주소를 지정할 수 있어요.

$ docker network connect --ip 10.10.36.122 multi-host-network container2

레거시 --link 옵션 사용 (--link)

--link 옵션을 사용해 선호하는 별칭으로 다른 컨테이너를 링크할 수 있어요.

$ docker network connect --link container1:c1 multi-host-network container2

컨테이너에 네트워크 별칭 생성 (--alias)

--alias 옵션으로 연결되는 네트워크에서 컨테이너를 다른 이름으로 해석할 수 있게 해요.

$ docker network connect --alias db --alias mysql multi-host-network container2

컨테이너 인터페이스용 sysctl 설정 (--driver-opt)

net.ipv4.net.ipv6.로 시작하는 sysctl 설정은 --driver-opt 라벨 com.docker.network.endpoint.sysctls로 인터페이스별로 설정할 수 있어요. 인터페이스 이름은 IFNAME으로 바꿔야 해요.

한 인터페이스에 여러 sysctl을 설정하려면 driver-opt 필드 전체 값을 따옴표로 감싸고, 필요한 경우 셸에서 따옴표를 이스케이프해요. 예를 들어 my-net에 대한 인터페이스 이름이 eth3라면 다음 예는 net.ipv4.conf.eth3.log_martians=1net.ipv4.conf.eth3.forwarding=0을 설정해요.

$ docker network connect --driver-opt=\"com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1,net.ipv4.conf.IFNAME.forwarding=0\" multi-host-network container2

참고

네트워크 드라이버는 수정할 수 있는 sysctl 설정을 제한할 수 있으며, 네트워크 운영을 보호하기 위해 향후 새 제한이 추가될 수 있어요.

컨테이너 중지·일시정지·재시작의 네트워크 영향

네트워크에 연결된 컨테이너를 일시정지·재시작·중지할 수 있어요. 컨테이너는 실행될 때 구성된 네트워크에 연결돼요.

지정된 경우 중지된 컨테이너를 재시작하면 컨테이너의 IP 주소가 다시 적용돼요. IP 주소를 더 이상 사용할 수 없으면 컨테이너가 시작에 실패해요. IP 주소가 항상 사용 가능하도록 보장하는 한 가지 방법은 네트워크를 만들 때 --ip-range를 지정하고, 그 범위 밖에서 정적 IP 주소를 고르는 거예요. 이렇게 하면 이 컨테이너가 네트워크에 없을 동안 다른 컨테이너에 그 IP 주소가 주어지지 않아요.

$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2

컨테이너가 연결됐는지 확인하려면 docker network inspect 명령을 사용해요. 네트워크에서 컨테이너를 제거하려면 docker network disconnect를 사용해요.

네트워크에 연결되면 컨테이너들은 다른 컨테이너의 IP 주소나 이름만으로 통신할 수 있어요. 멀티 호스트 연결을 지원하는 overlay 네트워크 또는 사용자 정의 플러그인의 경우, 서로 다른 Engine에서 실행됐지만 같은 멀티 호스트 네트워크에 연결된 컨테이너도 이렇게 통신할 수 있어요.

컨테이너를 하나 이상의 네트워크에 연결할 수 있어요. 네트워크는 같은 유형일 필요가 없어요. 예를 들어 단일 컨테이너에 bridge와 overlay 네트워크를 연결할 수 있어요.