22.11.14 22:23 작성
·
489
0
docker run -d -p 9999:80 -v /home/ubuntu/2021_DEV_HTML:/usr/local/apache2/htdocs --name my_apache httpd
란 명령어에서
1) httpd 의 컨테이너를 실행하는데, 아파치가 9999포트로 해당 경로에 있는 index.html 을 기본 경로로 연결한다 라는 뜻으로 이해를 했는데, 80 이란 포트는 어떤 건지 정확히 이해가 되지 않았습니다 ㅠ
Host OS 80번 포트 : Apache Container 9999 포트로 서로 연결된다..? 이런 뜻인가요? OS가 80번 포트에 있을리는 없는 것 같아서 문의를 올립니다.
2) /usr/local/apache2/htdocs 가 어떤 경로인지 잘 이해가 안되는데, 아파치에서 바라보는 경로? 가 정확이 어떤 뜻인지 조금만더 설명해주시면 감사할 것 같습니다.
3) 위 명렁어와 별개의 질문인데, Container 란 한 프로그램을 감싸고 프로그램을 띄우는? 공간이라고 설명해주신 것 같습니다. 한 프로그램만 돌아가는건가요? 아니면 별다른 서버 터미널과 동일하게 수많은 프로그램이 돌아갈 수는 있는 건데 목적에 맞는 프로그램들만 돌리는걸까요?
답변 1
1
1)
ec2 환경의 보안 그룹 인바운드 옵션에 9999포트를 열어주면 내 컴퓨터에 9999번 포트로 상대방이 요청을 할 수 있습니다. 실습환경이 ec2 서버 안에 도커아파치 서버(컨테이너)가 있습니다 웹 데몬 서버는 80(http)번 프로토콜로 클라이언트의 http요청을 대기합니다. 그래서 외부에서 ec2(내 컴퓨터) 9999번으로 들어오면 아파치80 번으로 들어오게끔 매칭을 시켜준 것입니다. 하나의 포트포워딩 개념입니다.
클라이언트 -> 9999번 요청 -> 9999번이열린 컴퓨터(ec2) -> 9999번으로 들어온 것을 80번 으로 보내라 -> 80번은 웹서버
2) 아파치2 웹 서버의 기본 파일 경로입니다. 해당 디렉터리에 html 문서를 넣고 인터넷에서 아파치 서버로 접속하면 그 html 문서가 나옵니다.
3) 컨테이너는 커널을 포함하지 않고 커널 외부 요소만 포함한 경량 서버 단위라고 할 수 있습니다. 그래서 경량화를 하는것입니다. 하나가 들어갈 때도 있고 여러개가 들어갈 때도 있습니다. 어떤 서비스를 운영하느냐에 따라 다릅니다.
2022. 11. 15. 18:32
오홋 대단하십니다. - <--- 아이디가 워낙 생각지 못한 아이디라 눈에 띄는데, 답변 감사합니다.~