Docker 컨테이너 통신

둥냥둥냥둥·2024년 1월 8일
0
post-thumbnail

Docker 컨테이너 통신


아파치란?

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

아파치는 많은 오픈 소스 소프트웨어 프로젝트들의 이름에 사용되는 말이다. 일반적으로 "아파치"라고 하면 아파치 소프트웨어 재단(Apache Software Foundation, ASF)이 유지관리하는 여러 오픈 소스 소프트웨어 프로젝트들을 가리키며, 특히 웹 서버 소프트웨어로 유명한 아파치 HTTP 서버를 말하는 경우가 많다.

아파치 소프트웨어 재단은 오픈 소스 프로젝트를 위한 비영리 단체로, 다양한 오픈 소스 프로젝트를 후원하고 지원한다. 이 재단은 다양한 프로젝트들을 포함하고 있으며, 대표적으로는 아래와 갔다.

  • 아파치 HTTP 서버
  • 아파치 톰캣(Apache Tomcat)
  • 아파치 하둡(Apache Hadoop)
  • 아파치 스파크(Apache Spark)
  • 아파치 카프카(Apache Kafka)

아파치 HTTP 서버는 웹 서버 소프트웨어로, 전세계적으로 많은 웹 사이트에서 사용되며 안정성과 확장성이 뛰어나다는 특징으로 유명하다. 이외에도 아파치 소프트웨어 재단의 프로젝트들은 데이터 처리, 분산 시스템, 웹 개발, 빅데이터 등 다양한 분야에서 활용되고 있다.


컨테이너와 통신하려면

웹 브라우저를 통해 컨테이너에 접근하려면 외부와 접속하기 위한 설정이 필여하가. 이를 위해 포트(port)를 설정한다.

포트란 통신 내용이 드러나는 통로를 의미한다. '웹 포트는 80번', '메일 포트는 25번'이라는 말을 들어본 적이 있을 것이다.

아파치 서버에서 정해준 포트(80번 포트)에서 웹 사이트에 대한 접근을 기다리다가 사용자가 이 포트를 통한 접근을해 오면 요청에 따라 웹 사이트의 페이지를 제공한다. 하지만 컨테이너 속에서 실행 중인 아파치는 외부와 직접 연결되지 않았기 때문에 외부에서 접슨할 수 없디.

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

그림 출처 : https://velog.io/@sayo11/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%ED%86%B5%EC%8B%A0

좀 더 구체적으로 설명하면 컨테이너를 실행 중인 컴퓨터의 8080번 포트 와 컨테이너의 80번 포트를 연결한다. 이 설정이 -p 옵션이며, 그 뒤로 '호스트의 포트 번호''컨테이너의 포트 번호' 를 콜론으로 연결해 함께 기재한다.

-p 호스트_포트_번호:컨테이너_포트_번호

-p 8080:80

그리고 컨테이너를 사용하면 여러 개의 웹 서버를 함께 실행할 수도 있다. 이러한 경우 호스트포트 번호를 모두 같은 것으로 사용하면 어떤 컨테이너로 가야 할 요청이니 구분할 수 없기 때문에 컨테이너 A에서 호스트 8080, 컨테이너 B에서는 호스트 포트 8081과 같은 식으로 호스트의 포트 번호를 겹치지 않게 설정한다. 꼭 여러 컨테이너로 연결되는 포트를 같게 설정하고 싶다면 리버스 프락시로 서버 이름을 통해 구별하도록 구성한다.

그림 출처 : https://velog.io/@sayo11/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%ED%86%B5%EC%8B%A0

웹 사이트로 접근

인터넷 상에 있는 웹 사이트는 https://www.docker.com/ 같은 URL을 통해 접근한다.

지금은 같은 컴퓨토 속이므로 인턴넷에 연결되지 않더라도 '현재 컴퓨터의 이 포트에 접근'하는 방법을통해 웹 사이트에 접속한다.

  • localhost : 현재 사용 중인 컴퓨터라는 뜻

localhost 뒤에 콜론 및 포트 번호를 기재하면 컨테이너에서 제공하는 웹 사이트에 접근할 수 있다.

http://localhost:8080/

profile
Java 먹자

0개의 댓글