Docker에 Tomcat 컨테이너 실행 로컬 파일 복사해서 실행시키기

2tsumo·2022년 5월 31일
0

docker

목록 보기
3/4
post-custom-banner

공식 Tomcat 이미지
https://hub.docker.com/_/tomcat

tomcat images 가져오기

docker pull tomcat:latest

가장 최신껄 가져왔다.

이름 옵션 주고 포트 설정 후 실행시켜주기

docker run -d --name tomcat -p 8888:8080 tomcat

-name 은 컨테이너의 이름을 정해주는 옵션
-p 옵션은 컨테이너의 포트를 로컬과 연결

나는 8080 포트가 사용중이라서 8888로 run시켰는데 앞에는 내 컨테이너이기때문에 8888을 쓰지만 뒤에는 8080을 써줘야한다 이거 때문에 시간 좀 버렸다..

간단하게 브라우저에 ip:8888 을 요청하면

404화면이 뜬다.
404 Not Found가 뜨니 톰캣이 제대로 안뜬건가? 싶을 수도 있지만, 톰캣이 떴기 때문에 해당 응답을 보내 준 것이다

톰캣이 잘 작동하고 있다는 뜻이며, 단지 WAS가 처리할 웹 어플리케이션이 하나도 없기 때문에 404가 뜨는 것!

만약 진행 중에 테스트를 위해서 톰캣 컨테이너를 삭제하고 다시 run 하고 싶다면
docker ps 로 CONTAINER ID 확인해서
정지 -> 삭제 -> 다시 run 하면된다

docker stop CONTAINER ID
docker rm CONTAINER ID

docker run -d --name tomcat -p 8888:8080 tomcat

컨테이너에 접속

docker exec -it tomcat /bin/bash

접속하면 자동으로 /usr/local/tomcat 폴더가 열리며, 해당 폴더에 webapps 등 필요한 폴더가 모두 있다

webapps폴더에 아무것도 없으며, 그렇기 때문에 ip:8888 접속시 404 에러가 뜬 것

컨테이너에 파일 복사

로컬에 있는 파일을 컨테이너에 복사 할때는 docker cp 명령어를 사용합니다.

docker cp 로컬파일위치 컨테이너명:컨테이너내부주소 형식으로 명령어를 입력 해 주면 됩니다.

저는 /usr/local/tomcat/webapps 아래에 ROOT폴더를 만든 뒤 -> mkdir ROOT

제 로컬에 /usr/local/tomcat/apache-tomcat-9.0.63/webapps/ROOT를 그대로 옮겨 주었습니다.

docker cp /usr/local/tomcat/apache-tomcat-9.0.63/webapps/ROOT tomcat:/usr/local/tomcat/webapps/ROOT

그럼 ip:8888로 했을때 제 로컬에 있던 고양이가 여기로 온것을 볼 수 있습니다!!

profile
👨‍💻
post-custom-banner

0개의 댓글