아파치란 ?
아파치는 웹 서버 기능을 제공하는 소프트웨어이다.
쉽게 설명해서 아파치가 동작 중인 서버에 파일을 두면 이 파일을 웹 사이트 형태로 볼 수 있다.
컨테이너는 실행될 때 외부에서 접근이 불가능한 상태로 실행되기 때문이다.
웹 브라우저를 통해 컨테이너에 접근이 가능하게하려면 컨테이너를 실행할 때 설정이 필요하다.
또한 이 설정은 컨테이너를 생성한 후에는 기본적으로 변경할 수 없다.
따라서 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
'TEAM STUDY > 쿠버네티스' 카테고리의 다른 글
[도커 실습] nginx 컨테이너 실행 (0) | 2022.06.19 |
---|---|
[도커 실습] 다중 컨테이너 통신 ( 아파치 활용 ) (0) | 2022.06.19 |
[도커 실습] 컨테이너 run / stop (0) | 2022.06.19 |
[도커 실습] 도커데스크탑이 WSL2 에서 동작하고 있는지 확인하기 (0) | 2022.06.19 |
[도커 실습] 윈도우용 도커 데스크톱 설치 (0) | 2022.06.19 |