공식 Tomcat 이미지
https://hub.docker.com/_/tomcat
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로 했을때 제 로컬에 있던 고양이가 여기로 온것을 볼 수 있습니다!!