작성
·
510
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) 컨테이너는 커널을 포함하지 않고 커널 외부 요소만 포함한 경량 서버 단위라고 할 수 있습니다. 그래서 경량화를 하는것입니다. 하나가 들어갈 때도 있고 여러개가 들어갈 때도 있습니다. 어떤 서비스를 운영하느냐에 따라 다릅니다.
완강했습니다 ! 이제는 백엔드 공부를 해봐야 겠어요 클라우드 플랫폼하고 서버 위주 연습만 하니까 서버 내부 처리 로직에 대한 이해가 약하다는 것을 깨닫게 되었습니다. 죄송합니다만 궁금한 점이 있습니다. 백엔드를 배울때 java python java script 중에 어느것이 저한테 좋을까요? 엔지니어 방향으로 가고 있는데 bash연습하면서 python 이나 js 를 가지고 가는게 좋겠죠?
오홋 대단하십니다. - <--- 아이디가 워낙 생각지 못한 아이디라 눈에 띄는데, 답변 감사합니다.~