본문 바로가기

TEAM STUDY/쿠버네티스

[도커 실습] 컨테이너 통신 ( 아파치 활용 )

728x90
반응형

아파치란 ?

아파치는 웹 서버 기능을 제공하는 소프트웨어이다.

 

쉽게 설명해서 아파치가 동작 중인 서버에 파일을 두면 이 파일을 웹 사이트 형태로 볼 수 있다.

 

컨테이너는 실행될 때 외부에서 접근이 불가능한 상태로 실행되기 때문이다.

 

웹 브라우저를 통해 컨테이너에 접근이 가능하게하려면 컨테이너를 실행할 때 설정이 필요하다.

또한 이 설정은 컨테이너를 생성한 후에는 기본적으로 변경할 수 없다.

따라서 docker run 커맨드에 옵션형태로 설정할 수 있다.

 


컨테이너와 통신하려면 ?

웹 브라우저를 통해 컨테이너에 접근하려면 외부와 접속하기 위한 설정이 필요하다.

이를 위해 '포트' 를 설정한다.

 

'포트'란 통신 내용이 드나드는 통로를 의미한다.

 

아파치는 서버에서 정해둔 포트에서 웹 사이트에 대한 접근을 기다리다가 사용자가 이 포트를 통해 접근해 오면 요청에 따라 웹 사이트 페이지를 제공한다.

하지만 컨테이너 속에서 실행중인 아파치는 외부와 직접 연결되지 않았기 때문에 외부에서 접근할 수 없다,

 

그래서 컨테이너를 실행 중인 물리적 컴퓨터가 외부의 접근을 대신 받아 전달해주도록 한다.

 

좀 더 구체적으로 설명하면 컨테이너를 실행중인 컴퓨터의 8080번 포트와 컨테이너의 80- 번 포트를 연결한다.

이 설정이 -p 옵션이며, 그 뒤로 호스트의 포트번호와 컨테이너의 포트 번호를 콜론으로 연결해 함께 기재한다.

 


여러개의 웹 서버를 함께 실행하기

컨테이너를 사용하면 여러 개의 웹 서버를 함께 실행할 수 있다.

이러한 경우 호스트 포트번호를 모두 같은 것으로 사용하면 어떤 컨테이너로 가야 할  요청인지 구분할 수 없기에 호스트 포트 번호가 겹치지 않게 설정한다.

 

꼭 여러 컨테이너로 연겱되는 포트 번호를 같게 설정하고 싶다면 리버스 프락시로 서버 이름을 통해 구별하도록 구성한다.

 


🌝  컨테이너 생성 및 실행 - run

 

docker run --name apa000ex2 -d -p 8080:80 httpd

 

soobin@DESKTOP-6SJCDN6:/mnt/c/WINDOWS/system32$ docker run --name apa000ex2 -d -p 8080:80 httpd
dc0c74aba591ccb4c34100f60d481dc526e1854e79d8f4dcceaf1fa94f863ffd

🌝 컨테이너 상태 확인 - ps

 

docker ps

 

soobin@DESKTOP-6SJCDN6:/mnt/c/WINDOWS/system32$ docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                  NAMES
dc0c74aba591   httpd     "httpd-foreground"   16 seconds ago   Up 15 seconds   0.0.0.0:8080->80/tcp   apa000ex2

🌝 웹 브라우저를 통해 아파치에 접근할 수 있는지 확인

 

http://localhost:8080/

 


🌝 컨테이너 종료 - stop

 

docker stop apa000ex2 

 

soobin@DESKTOP-6SJCDN6:/mnt/c/WINDOWS/system32$ docker stop apa000ex2
apa000ex2

🌝 컨테이너 삭제 - rm

 

docker rm apa000ex2 


 

 

 

728x90
반응형