안녕하세요. IT Window 킷도우입니다.
지난 번 포스팅에서 도커 설치, 톰캣 컨테이너 이미지 다운, 컨테이너 생성/시작/중지/삭제 방법에 대해서 알아봤었는데요. 못보신 분들은 아래 링크 참고하시면 도움되실 것 같습니다.
[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를 확인합니다.
그리고 해당 http://외부IP 이렇게 접근을 하면 아래와 같이 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 구동시 발생하는 404에러를 해결하는 방법을 알아 봤구요. 다음 포스팅에서는 더 유익한 방법을 찾아 뵙겠습니다.
감사합니다!
댓글