티스토리 뷰

개발/docker

네트워크 관리

Jaeyeon Baek 2016. 12. 1. 08:36

새로 생성되는 Container는 기본적으로 docker0 인터페이스를 사용하고, 별다른 설정을 건드리지 않았다면 bridge 모드로 동작한다. 또한 Container의 IP는 docker가 관리해줘서 172.17.0.0/16 대역으로 설정된다. 일종의 DHCP leasee 같은 개념이 되겠다. 

여기서 한가지 알고 넘어가야 하는 사실은 IP가 유동이라는 사실이다. 한번 Container가 올라오면 IP가 변경될 일이 없지만 Container를 재시작하는 경우 때때로 IP가 변경된다. 아래와 같은 예를 들어보자.

이렇게 운영중이던 서비스에서 Docker 재시작으로 인해 2번 Container (172.17.0.3) 를 먼저 시작하고 1번 Container (172.17.0.2) 가 시작되었다면 Docker 는 야속하게도 먼저 시작되는 서비스에게 172.17.0.2를 할당해주게 될 것이다.

IP를 관리해준다는 측면에서 무척 유용하지만 Container가 IP를 고정으로 사용해야 하는 상황이라면 썩 반가운 기능만은 아니다. 하지만 Docker에는 Statiac 하게 IP를 사용할 수 있도록 도와주는 네트워크 기능도 있다는 점을 알고 넘어가야 한다.

일단 아래와 같은 명령어를 통해 새로운 네트워크를 생성해주자.

 $ docker network create --subnet=172.18.0.0/16 mynet

그리고 앞으로 Container를 생성할 때 IP를 지정해주면 되겠다

$ docker run -d -it --net mynet --ip 172.18.0.1 --name container_tmp myimage /bin/bash


이제 docker가 재시작되도 IP는 유지될 것이다.


댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday