본문 바로가기
Server/Docker

[Docker] 컨테이너를 만들고 프로젝트 넣기

by Youngs_ 2022. 5. 18.

docker pull tomcat:9.0

위 명령어를 이용해 tomcat 9.0 이미지를 받는다.

다른 버전을 받아도 상관없다.

그 후에 아래 명령어를 이용해 컨테이너 생성 및 포트포워딩을 하고, war로 만든 프로젝트를 넣는다.

docker run -d --name=[컨테이너 명] -p 10000:8080 tomcat:9.0
# -d 옵션은 데몬으로 실행하도록 하는 옵션이다. 해당 옵션을 사용하지 않으면 포그라운드에서 실행되어서 명령어를 입력할수 없다고 한다.
# --name 옵션은 생성할 컨테이너의 이름
# -p 옵션은 포트번호 [호스트 포트번호]:[컨테이너 포트번호]
# tomcat:9.0은 [이미지 이름]:[이미지 태그]

docker cp ROOT.war [컨테이너 이름]:/usr/local/tomcat/webapps/
# 프로젝트를 ROOT.war파일로 만든 후에 cmd창에서 해당 폴더 경로로 이동한 후에 위 명령어를 이용해 webapps 폴더에 넣는다.
# 파일 이름은 ROOT.war 이어야한다.

위 과정을 마친후에 localhost:10000을 입력하면 war로 만든 프로젝트가 나와야한다.

필자는 프로젝트가 안나오고 404에러가 나온다 ㅠㅠ 해결방법 찾는중

-> 해결! 평소 로컬에서 테스트할때 'localhost:10000/프로젝트명/페이지명'을 입력해서 해당 페이지에 들어갔는데 프로젝트명을 입력하게 하는 부분의 설정이 Server탭의 Server.xml에 설정되어있는데 도커에는 Server.xml에 해당 부분이 설정되어있지 않아서 생기는 현상이었다. 'localhost:10000/페이지명'을 입력해서 들어가면 제대로 들어가진다.

 


간단하게 html 하나만 띄워주는걸 테스트 하기 위해서는 아래와같이 진행하면 된다.

1. 아래 index1.html 파일을 받는다. (html 파일을 자신이 따로 만들어도 상관없다.

index1.html
0.00MB

2. 위 단락에서 했던것처럼 컨테이너를 만들어준다.

docker run -d --name=[컨테이너 명] -p 10000:8080 tomcat:9.0​

 

3. cmd에서 [1번]에서 생성한 index1.html로 이동한다.

4. index1.html 복사

생성한 톰캣 컨테이너에 진입한다.

톰캣 컨테이너에 진입하는건 위 이미지처럼 Docker Desktop에서 컨테이너 탭에 들어간 후 >_ 버튼을 누르면 된다.
>_버튼에 마우스 오버를 하면 CLI라는 팁이 나올것이다.
혹은 아래 명령어를 이용한다.

docker exec -it [컨테이너 ID] /bin/bash
# 주의해야할 것은 docker exec 명령을 할때 옵션으로 -it 라고 덧붙여 주어야 한다. 이는 STDIN 표준 입출력을 열고 가상 tty (pseudo-TTY) 를 통해 접속하겠다는 의미이다. 
# docker exec 는 container에 특정 명령을 실행할 수 있는 것인데 이때 명령을 /bin/bash 라고 하면 된다.

진입한 후에 아래 명령어들을 이용해 test 폴더를 만들고, index1.html을 복사한다.

cd /usr/local/tomcat/webapps
mkdir test
docker cp index1.html [컨테이너명]:/usr/local/tomcat/webapps/test/

반드시 cmd창에서 index1.html이 위치한 경로로 이동해야하고, 그게 싫다면 index1.html을 절대경로로 수정하면된다.

 

5. index1.html 출력확인

localhost:10000/test/index1.html 을 주소창에 입력하면 자신이 생성한 html 화면이 나올것이다.

필자가 올려놓은 html 파일을 사용했다면 'Docker Tomcat Start'라는 글자가 나올 것 이다.

'Server > Docker' 카테고리의 다른 글

[Docker] 명령어 정리  (0) 2022.05.31
[Docker] ubuntu 컨테이너 생성  (0) 2022.05.30
[Docker] vi 편집기 설치  (0) 2022.05.19
[Docker] Dockerfile 명령어  (0) 2022.05.19
[Docker] 도커 컨테이너를 위한 오라클 21c  (0) 2022.05.16

댓글