📌 도커 네트워크에 대해 다룹니다.
Docker Network란 실행된 각각의 컨테이너끼리 연결하기 위한 네트워크이다. 같은 네트워크 안에서는 각각의 컨테이너의 IP를 지정해주지 않고 컨테이너 name
으로만 간편하게 네트워크를 연결 할 수 있다는 장점이 있다.
과거에는 Docker Link 를 사용해서 통신을 해왔지만, 최근에는 이 방식을 권장하지 않는다.
docker network ls
위 명령어로 네트워크 목록을 확인할 수 있다.
docker network create --driver bridge my_bridge
위 명령어로 새로운 브리지 타입의 네트워크를 생성할 수 있다.
docker run -i -t --name test_container \
--net my_bridge \
ubuntu:14.04
--net my_bridge
옵션을 사용하면 컨테이너가 my_bridge
네트워크를 사용하도록 설정할 수 있다.
네트워크를 호스트로 설정하면 호스트의 네트워크 환경을 그대로 사용한다.
docker run -i -t --name network_host \
--net host \
ubuntu:14.04
-net host
옵션으로 네트워크를 호스트와 같게 설정한다.
none
은 아무런 네트워크를 쓰지 않는다는 것을 의미한다. 즉, 외부와 연결이 단절된다.
docker run -i -t --name network_none \
--net none \
ubuntu:14.04
--net none
옵션으로 none
네트워크를 설정한다.
--net
옵션으로 다른 컨테이너를 입력하면 해당 컨테이너의 네트워크 네임스페이스 환경을 공유할 수 있다. 공유되는 속성은 내부 IP, 네트워크 인터페이스의 맥(MAC) 주소 등이다.
docker run -i -t --name network_container \
--net container:some_container \
ubuntu:14.04
--net container:some_container
과 같이 container:[다른 컨테이너의 ID]
옵션을 사용하면 network_container
의 네트워크 관련된 사항은 전부 some_container
와 같게 설정된다.