도커를 사용하기 위해서는 네트워크에 대한 이해가 조금 필요하다. 아파치 등 다양한 프로그램들이 네트워크 위에서 동작하기 때문이다.
도커 호스트에는 여러 개의 컨테이너가 만들어질 수 있다. 호스트와 컨테이너는 모두 독립적인 실행 환경이기 때문에 독립적인 포트와 파일 시스템을 가지고 있다.
따라서 호스트와 컨테이너는 서로의 포트를 연결해주어야 한다. 즉, 포트 포워딩을 통해 호스트의 80번 포트로 들어온 요청을 컨테이너의 80번 포트로 전달하는 것이다.
이해를 돕기 위해 한 땀 한 땀 다이어그램을 그려보았으니 참고하면 좋을 듯.
호스트의 8081 포트로 들어오는 요청을 컨테이너의 80 포트에서 처리해보자.
# 컨테이너 실행
$ docker run --name ws2 -p 8081:80 httpd
docker ps
로 확인해보니 포트가 잘 셋팅되어있는 듯하다.
$ curl http://localhost:8081
HTML 응답이 잘 넘어온다.