[Docker] 도커 입문과정 - Port forwarding

leeng·2023년 2월 20일
0

docker

목록 보기
4/6

보통은 웹서버를 서버로 사용하려는 PC에 바로 설치를 하게 된다. 하지만 도커를 사용하면
웹서버(여기서는 httpd)를 컨테이너에 설치하게 되는 것이다. 그리고 컨테이너가 설치된 운영체제는 (Docker)Host라고 부른다.
그런데 Host와 Container는 각각 독립적인 실행환경이기 때문에 각자 독립적인 포트와 파일시스템을 가지고 있다. 그래서 Host와 Container의 포트를 연결해주어야한다. 그래야 Host의 port로 전송된 신호를 Container의 port에게 전달할 수 있는데, 이를 Port forwarding이라고 한다.

우선은 Docker Desktop을 통해 port 설정하는 방법에 대해 알아보자.

1-1. 컨테이너 생성 시 옵션 설정

Docker Desktop의 images 탭에서 httpd를 실행시키면 새로운 컨테이너를 만들 수 있고, 이 때 실행할 컨테이너의 옵션을 설정할 수 있다.
여기서 Ports 항목을 보면 Host port와 Container port가 있다. Container port는 해당 이미지를 만든 사람이 이 이미지의 프로세스로 접속할 때에는 해당 포트로 접속하도록 설정을 해놓은 것이다. 그러므로 우리가 설정할 것은 Host port이다. host의 몇 번 포트로 접속했을 경우에 이 Container port로 연결할지를 설정해주는 것이다.

여기서는 8080 포트로 접속할 경우 해당 컨테이너의 80번 포트와 연결되도록 설정해주었다.

1-2. 포트 접속 후 컨테이너 로그 확인

8080 포트로 접속해보면 해당 컨테이너로 연결이 잘 되어 로그가 찍히는 것을 확인할 수 있다.

이번에는 command line을 통해 host와 container의 포트를 연결해보자.

2-1. Docker CLI - run -p

docker docs에서 container의 port와 host 연결시에 --publish 혹은 -p 옵션을 사용하라는 것을 확인할 수 있다.

"docker run --name 컨테이너이름 -p 호스트포트:컨테이너포트 이미지이름" 명령어를 통해 컨테이너를 만들어보았다.
이번에는 ws3라는 이름의 컨테이너를 호스트의 8081 포트를 웹서버와 연결시켰다.

생성된 컨테이너 확인

2-2. 포트 접속 후 컨테이너 로그 확인

8081 포트로 접속

8081과 연결된 ws3의 로그가 잘 출력되는 것을 확인할 수 있다.

profile
기술블로그보다는 기록블로그

0개의 댓글