본문 바로가기
Framework and Tool/Docker

Container port

by ocwokocw 2023. 6. 10.

출처: 시작하세요! 도커/쿠버네티스 - 컨테이너를 외부에 노출

 

Container는 VM과 마찬가지로 가상 IP주소를 할당받으며 기본적으로는 Docker NAT IP인 172.17.0.x를 할당받는다. 

만약 ifconfig 명령어를 찾을 수 없다고 뜬다면 apt-get update, apt-get install net-tools 명령어를 차례대로 실행시킨 후 ifconfig 명령어를 사용한다.

root@86058c0bec67:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 14092  bytes 20792420 (20.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4183  bytes 232275 (232.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

위에서 조회된 interface는 eth0과 lo 이다. 만약 Docker container에 접근하고 싶다면 eth0의 IP, Port를 Container를 띄운 host의 IP, Port에 바인딩 해야한다. 바인딩을 하려면 -p option을 이용하면 된다.

docker run -it --name webserver -p 80:80 ubuntu:14.04

host의 80과 container의 80 이 잘 바인딩 됐는지 확인하기 위해 간단하게 apache web server를 설치해서 service를 시작해보자. container에서 아래 명령어를 입력해준다.

apt-get update
apt-get install apache2 -y
service apache2 start

그리고 127.0.0.1로 접속해보면 apache2 ubuntu default page를 만날 수 있다.

내부적으로 일어난 일을 정리해보면 아래와 같다.

  • host ip의 80 port 접근
  • 해당 접근을 container의 80 port로 포워딩
  • apache2 web server에 접근

'Framework and Tool > Docker' 카테고리의 다른 글

Docker network  (0) 2023.06.12
Docker volume  (0) 2023.06.11
Container application example  (0) 2023.06.10
Container 생성 및 삭제  (0) 2023.06.03
Image와 Container  (0) 2023.05.31

댓글