웹·서버·클라이언트(브라우저) 패턴에서는 일반적으로 두 대의 컴퓨터가 필요하다. 웹·서버에서는 클라이언트에서 요청하면 그에 해당하는 url을 응답한다.
웹·서버 측의 서비스 url을 example.com으로 가정해보자. 그렇다면 해당 url에 접근하기 위해서 클라이언트는 http://example.com:80/index.html
로 해당 서비스의index.html 페이지로 접근이 가능할 것이다.
컴퓨터에는 약 65000개의 포트가 존재하며 각 포트번호 별로 구분하여 접근을 할 수 있게 해준다. 기본적으로, 대부분의 웹 브라우저는 HTTP 트래픽을 전송하는 데 80 포트를 사용하며, 웹 서버는 클라이언트로부터의 HTTP 요청을 받기 위해 80 포트를 기다린다.
Docker를 사용하면 도커의 포트번호와 도커 내부에 있는 다수의 컨테이너와 해당하는 컨테이너의 포트번호를 각각 인지해야한다. 이 방식을 port forwarding이라고 한다.
Docker hub에서 httpd 이미지 다운로드(pull)
docker pull httpd
이미지 Run
일반적으로 우측의 컨테이너 포트는 80으로 고정되어 있고(변경 가능) 좌측에는 호스트 도커 포트를 설정한다.
80(도커 호스트 포트):80(컨테이너 포트) -> 80:80
완료
포트는 80:80으로 컨테이너를 생성하였다.
또 하나의 컨테이너 만들어보기(Docker port 8081)
docker run --name WebServer2 -p 8081:80 httpd