[Docker] 톰캣 실행, 포트 포워딩

류재성's avatar
Jul 19, 2024
[Docker] 톰캣 실행, 포트 포워딩
 

1. 톰캣 설치

💡
아파치 톰캣(Apache Tomcat)은 자바 서블릿, 자바 서버 페이지(JSP), 자바 표현 언어(EL) 및 웹소켓 기술을 구현한 오픈 소스 웹 서버이자 서블릿 컨테이너이다. 톰캣은 주로 자바 기반의 웹 애플리케이션을 실행하고 관리하는 데 사용된다. 이는 웹 서버와 서블릿 컨테이너 역할을 모두 수행할 수 있는 소프트웨어로, 웹 애플리케이션 개발과 배포에 널리 사용된다.
 
notion image
 
docker run -it tomcat:9.0 // 톰캣이 없으면 설치 후, 컨테이너 생성. 터미널에 접근할 수 있게 한다.
 
notion image
 
 
notion image
 
톰캣이 실행되고 있다.
 
notion image
 
💡
catalina.sh run 은 아파치 톰캣 실행 명령어이다.
 
 

2. docker exec -it

💡
실행 중인 컨테이너 내에서 새로운 명령을 실행할 때 사용하는 명령어. 이 명령어를 사용하면 특정 컨테이너 내부에서 명령어를 실행하고, 컨테이너와 상호작용할 수 있다.
docker exec -it container_id bash // 커맨드를 바꿔서 실행 중인 프로그램에 접근
notion image
 
 

3. 포트 포워딩(Port Forwarding)

 

3.1 포트 포워딩(Port Forwarding)란?

💡
포트 포워딩(Port Forwarding)은 네트워크 트래픽을 특정 포트에서 다른 포트로 전달하는 방식이다. 이는 네트워크 주소 변환(NAT) 설정의 일종으로, 외부 네트워크에서 특정 포트로 들어오는 요청을 내부 네트워크의 다른 포트로 전달하는 데 사용된다. Docker에서는 호스트 시스템의 포트를 컨테이너의 포트에 매핑하여, 외부에서 컨테이너 내부의 서비스를 접근할 수 있도록 설정할 때 사용된다.
 
notion image
 
① 외부에서 공유기의 공인IP 10.5.5.5:5000 을 요청한다.
 
② 외부의 요청이 공유기에 도착한다. 10.5.5.5 는 공인 IP 로 외부의 인터넷과 연결된 IP이다. 192.168.0.1 은 사설 IP로 내부 네트워크에서만 사용되며, 인터넷에 직접 연결되지 않는다.
 
③ 공유기는 포트 포워드 테이블에서 5000번 포트가 내부 네트워크의 어떤 애플리케이션에 할당되어잇는지를 확인한다.
 
④ ARP(Address Resolution Protocol) 를 통해 IP 주소를 MAC 주소로 변환한다. MAC 주소는 물리적 하드웨어 수준에서 장치를 식별하는 식별자이다.
 
⑤ 공유기를 MAC 주소에 해당 하는 디바이스를 찾아간다.
 
⑥ 포트에 맞는 애플리케이션을 찾아간다.
 
 

3.2 포트 포워딩하기

 
docker run -dit -p 3000:8080 tomcat:9.0 // 3000 포트가 때려지면 톰캣의 포트번호 8080이 호출됨
notion image
 
notion image
 
notion image
💡
POSRT 가 3000 → 8080 으로 된 것을 확인할 수 있다. 3000 포트를 요청하면 톰캣의 8080이 요청되면서 404 오류가 뜬다.
 

3.3 index.html 파일 만들기

💡
웹 브라우저에서 도메인이나 IP 주소를 입력할 때, 특정 파일을 지정하지 않으면 웹 서버는 기본 시작 페이지로 index.html 파일을 응답한다.
 
실행 중인 톰캣을 실행
notion image
 
ROOT 폴더 생성 후 이동
ls // 현재 경로에서 파일 및 디렉토리 목록 보기 cd webapps // webapps 폴더로 이동 mkdir ROOT // ROOT 폴더 생성 cd ROOT // ROOD 폴더로 경로 이동
notion image
 
💡
ROOT 폴더를 만든 이유는 주소 요청시 webapps/ROOT/index.html 을 찾기 때문이다.
 
패키지 목록 업데이트
notion image
apt-get update // 새로운 소프트웨어, 혹은 소프트웨어 업데이트 전 패키지 목록을 최신 상태로 업데이트
 
리눅스 시스템에 Vim을 쉽게 설치
notion image
apt-get install vim // Vim 설치, Vim 은 리눅스에서 텍스트 편집기
 
index.html 생성
notion image
vi index.html // index.html 을 실행하고 편집하는 명령어
 
notion image
 
💡
vim 실행 후 insert 누르면 입력 모드로 실행 된다. 원하는 텍스트를 입력 후 esc 를 누르면 일반 모드로 돌아온다. 이때 :wq 를 입력하면 저장 후 vim이 종료된다.
 
 
notion image
index.html 을 만든 후 localhost:3000 을 실행하면 index.html이 출력된다.
Share article

{CODE-RYU};