ㄴ도커로 동작하는 어플리케이션들은 네트워크를 이용하고 있다.
Docker 없이 웹 서버를 설정해야 할 때
서버 컴퓨터는 약 65,000개 port 가 있는데, 이는 컴퓨터에 설치되어 있는 여러 소프트웨어들을 네트워크 적으로 구분해준다.
위 이미지에 나오는 서버 컴퓨터는 웹 서버가 80포트에서 접속을 대기하고 있도록 설정되어 있으며
웹 서버에 요청이 왔을 때 File System(데이터가 저장된 공간) 내에서 디렉토리와 파일을 찾으라는 설정에 맞추어 index.html 을 찾아 웹 브라우저에게 코드를 전달하게 된다.
즉, 서버 컴퓨터 포트에 웹 서버를 설정해두고 파일시스템 설정에 따라 파일을 찾고 응답을 해주면 된다.
Docker 를 이용하여 웹 서버를 설정 한다면?
웹 브라우저에서 접속을 시도하면 Host 와 Container 는 연결이 끊겨 있어 접속이 안된다.
이 때 Host 의 80 port 와 Container 의 80 port 를 연결해주면 되는데 이때 명령어를 통해 혹은 도커 대시보드에서 설정이 가능하다.
$docker run -p 80:80 httpd
이렇게 연결하면 Host 80 port 로 들어온 신호가 Container 80 port 로 전송이 가능해지며, 이러한 과정을 Port Forwarding 이라 한다. 이 후 과정은 이 전과 동일하다.
추가적으로 Host port 가 8000 으로 변경되었다면, 아래와 같이 명령어를 입력해주어야 한다.
$docker run -p 8000:80 httpd
Container port 는 컨테이너 혹은 이미지를 만든 사람이 이미지에 설치되어 있는 프로세스에 접속할 땐 80 port 로 접속해야된다는 설정을 해두었기 때문에 이미 설정이 되어있다.
아래는 이름이 ws3 인 httpd 를 port 8081 로 들어오면, Container 의 80 port 로 연결하겠다는 설정이다.
$docker run -p 8081:80 httpd
Script
도커로 동작하는 어플리케이션들은 네트워크를 이용하고 있다.
Host 의 port 와 Container 의 port 를 맞추어 설정해주어야지만 서로 신호를 주고 받을 수 있게 된다.
참고강의
'컨테이너 > 도커' 카테고리의 다른 글
Docker 정리 (5) 명령어 실행 (0) | 2021.08.28 |
---|---|
Docker 정리 (5) 명령어 실행 (0) | 2021.08.28 |
Docker 정리 (4) 컨테이너 run (0) | 2021.08.28 |
Docker 정리 (3) 이미지 Pull (0) | 2021.08.28 |
Docker 정리 (2) (0) | 2021.08.28 |