본문 바로가기
킷도우의 클라우드, 쿠버네티스/도커(Docker)

[Docker] 도커 컨테이너 톰캣 404 에러 해결하기(Ubuntu linux에서 도커 톰캣 컨테이너로 tomcat 9.0 버전 설치하고 곧장 구동하기)

by 킷도우 2023. 1. 13.
반응형

안녕하세요. IT Window 킷도우입니다.

지난 번 포스팅에서 도커 설치, 톰캣 컨테이너 이미지 다운, 컨테이너 생성/시작/중지/삭제 방법에 대해서 알아봤었는데요. 못보신 분들은 아래 링크 참고하시면 도움되실 것 같습니다.

https://kitdow.tistory.com/25

 

[Docker] 도커 설치, 톰캣 컨테이너 이미지 다운, 컨테이너 생성/시작/중지/삭제 방법(Docker run, start,

안녕하세요. IT Window 킷도우입니다. 지난 번 포스팅에서는 도커 컨테이너에 대해서 알아봤는데요. 못 보신 분들은 아래 링크 참고해주세요~ https://kitdow.tistory.com/24 [Docker] 도커란? 도커 컨테이너

kitdow.tistory.com

 

네 그런데 이렇게 docker run 명령어를 사용해서 컨테이너를 올리면 톰캣은 구동이 되는데 404에러 페이지가 나옵니다. 

tomcat을 구동 시키는 방법을 다시 한 번 설명드리면 컨테이너를 아직 한 번도 실행하지 않으신 분은 아래와 같이 실행을 합니다.

docker run -it -d -p 80:8080 --name tomcat tomcat:9.0.70-jdk8-corretto

이미 기존에 run 명령어를 통해 실행을 했고, 컨테이너를 stop한 상태에서 다시 시작해야 하는 상황이라면 아래와 같이 명령어를 입력합니다.

docker start tomcat
(여기서 tomcat은 최초 run 명령어 실행할 때 --name 옵션으로 지정한 컨테이너 명입니다.

네 이 상태에서 가상머신(VM)의 IP를 확인해서 http://VM의 IP 이렇게 접속해주면 돼야되는데요. 가상 머신이 아닌 로컬 PC에서 도커를 쓰시는 분이라면 localhost로 실행이 되시겠지만 GCP를 사용하시는 분들은 아래와 같이 VM인스턴스 화면에서 외부 IP를 확인합니다.

GCP- VM 인스턴스 메뉴에서 외부 IP 확인하기

그리고 해당 http://외부IP 이렇게 접근을 하면 아래와 같이 404 에러가 나옵니다.

도커 톰캣 컨테이너 실행 시 최초 404 에러 페이지

 

404 에러의 이유는 바로 프로젝트 root 경로인 webapps가 비어있기 때문입니다. 

위 이슈를 해결해 보겠습니다.

반응형

해결 방법 1. 톰캣 컨테이너에 터미널로 직접 붙어 tomcat 폴더 구성을 확인해 보자.

컨테이너에 접속하는 명령어는 아래와 같습니다.

root@instance-1:~# docker exec -it tomcat /bin/bash
bash-4.2# pwd  --현재 위치한 디렉토리를 확인하는 명령어입니다
/usr/local/tomcat

네 이 폴더에서 ls 명령어를 통해 폴더 구성을 확인해 보면 webapps 폴더는 빈 상태로 존재하고 대신 webapps.dist라는 폴더가 있습니다. 이 폴더가 찐으로 보이네요.

bash-4.2# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs            temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work

 

해결 방법 2. webapps.dist 폴더를 webapps 폴더로 변경하자

bash-4.2# mv ./webapps ./webapps2
bash-4.2# mv ./webapps.dist ./webapps
bash-4.2# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs            temp     webapps2
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work

네 webapps 폴더에 다시 들어가 보면 우리가 예상하는 일반적인 파일 구조가 보이실 겁니다.

bash-4.2# cd webapps
bash-4.2# ls
ROOT  docs  examples  host-manager  manager

 

해결 방법 3. 도커 컨테이너 재기동 - docker restart

재기동하기에 앞서 먼저 컨테이너에서 빠져나와야 합니다.

bash-4.2# exit
exit
root@instance-1:~#

그리고 아래 명령어로 다시 재기동해 주겠습니다.

이 때 컨테이너를 삭제하는 rm 명령을 사용하고 다시 run하게 되면 우리가 앞서 설정한 것들이 다 삭제되기 때문에 반드시 restart명령어를 사용해야 합니다.

root@instance-1:~# docker restart tomcat
tomcat

네 이렇게하고 다시 http://외부IP 를 웹 브라우저 상에서 입력하면 tomcat 메인 페이지가 나오는지 확인해 보겠습니다.

정상적으로 나오는 tomcat 메인 페이지

네 이렇게 해서 도커 컨테이너에서 tomcat 구동시 발생하는 404에러를 해결하는 방법을 알아 봤구요. 다음 포스팅에서는 더 유익한 방법을 찾아 뵙겠습니다.

 

감사합니다!

반응형

댓글