컨테이너는 가상 머신과 마찬가지로 가상 IP 주소를 할당 받는다.
기본적으로 도커는 컨테이너에 172.17.0.x의 IP를 순차적으로 할당한다.
# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2930 (2.9 KB) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
외부에 컨테이너의 애플리케이션을 노출하기 위해서는 eth0의 IP와 포트를 호스트의 IP와 포트에 바인딩 해야한다.
docker run 시 -p 80:80
옵션을 이용하여 바인딩 할 수 있다.
-p [호스트의 포트]:[컨테이너의 포트]
docker run -i -t --name mywebserver -p 80:80 ubuntu:14.04
# 호스트의 192.168.0.100 IP, 7777번 포트를 컨테이너의 80번 포트와 연결
# -p 옵션은 여러번 사용 가능
docker run -i -t --name mywebserver -p 3306:3306 -p 192.168.0.100:80:80 ubuntu:14.04