- 개발환경
AWS + Ubuntu 16.04 Server
- 설치
1. Docker에 Tomcat을 설치하고 자동으로 Startup합니다.
docker run -d --name="tomcat-test" -p 8080:8080 tomcat:8
-d 옵션은 Tomcat을 백그라운드에서 실행하겠단 의미입니다. 해당 옵션을 주지 않을 시 Tomcat Startup 로그가 포그라운드에 뿌려지므로 더는 리눅스 명령어를 입력할 수 없습니다. 그 상태에서 Shutdown을 할 경우 도커 컨테이너도 같이 종료 됩니다.
--name은 별다른 의미는 없고 Docker Container ID가 복잡하므로 임의의 name을 줘서 관리합니다.
-p는 PORT 설정입니다. 앞 부분은 호스트 OS의 PORT, 뒷 부분은 게스트 OS의 PORT입니다. 도커가 깔린 리눅스가 앞 부분을 맡고있고 도커 프로세스가 뒷 부분을 맡고 있다고 보면 됩니다.
tomcat:8은 docker hub에서 가져옵니다.
2. 현재 돌아가고 있는 Docker Container를 확인합니다.
docker ps
STATUS가 Up이라고 표시되어있으면 돌아가고 있단 의미입니다.
3. 톰캣 webapps 폴더 밑에 war파일을 복사합니다.
docker cp ~/ROOT.war tomcat-test:/usr/local/tomcat/webapps/
~/는 계정 홈디렉토리입니다. 참고로 AWS 환경에서 우분투에 war파일을 넣기위해선 WinSCP와 같은 SFTP를 이용해야하며 사용방법은 아래 링크에 자세히 나와있습니다. 더불어 ubuntu 계정은 사용자 계정이라 파일전송이 불가능하며 파일전송의 관리가 쉽도록 root 관리자 계정을 만들어서 로그인해주세요.
war파일의 이름은 ROOT로 맞춰주세요. Tomcat의 별다른 설정이 없다면 ROOT.war를 배포해서 보여줍니다.
4. 복사된 파일이 잘 들어갔는지 확인합니다.
docker exec -it tomcat-test /bin/bash
exec 명령어는 해당 컨테이너 프로세스에 접속할수 있게 해주고 -it 옵션을 줘야 터미널에 입력이 가능해집니다. webapps 폴더 밑에 ROOT.war가 잘 들어가있고 넣기만하면 톰캣을 재시작하거나 도커를 다시 시작하지 않아도 배포가 됩니다. 그 외 톰캣 매니저 파일들은 도커가 필요가 없다 판단하여 webapps.dist로 옮겨진 상태입니다.
5. 접속해서 확인합니다.
AWS 환경에선 ec2~~~~.compute.amazonaws.com:8080으로 접속할 수 있습니다.
8080은 앞서 설명했던 호스트 OS Port 번호입니다.
리눅스 환경에선 curl http://localhost:8080으로 확인하시면됩니다.
'🐋 Docker' 카테고리의 다른 글
Dockerfile을 빠르게 배워보기 (0) | 2023.11.13 |
---|---|
Docker Volume을 빠르게 배워보기 (0) | 2023.11.13 |
[CI/CD] 스프링부트 + 깃헙 + 젠킨스 연동하면서 겪은 시행착오 (1) | 2022.09.23 |
윈도우에서 도커 사용 시 가상화 설정 (0) | 2020.02.07 |