컨테이너/도커

Docker 정리 (4) 도커 네트워크

개발정리 2021. 8. 28. 14:19

ㄴ도커로 동작하는 어플리케이션들은 네트워크를 이용하고 있다. 

 

 

 

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 를 맞추어 설정해주어야지만 서로 신호를 주고 받을 수 있게 된다. 

 

 

 

참고강의


https://opentutorials.org/course/4781