Apache Tomcat

Docker Tomcat Install (도커 톰캣 설치)

sstdio.h·2018년 6월 28일·조회 51,903

1. 개요

도커에서 톰캣을 설치하는 경험.

도커에 대해 보다 자세히 알고 싶다면 다음 글들을 읽어보자.


2. 사전 확인 사항

도커 환경이어야 한다.


3. 실행

3.1. 이미지 받기

# docker pull tomcat:8
8: Pulling from library/tomcat
0bd44ff9c2cf: Pull complete
047670ddbd2a: Pull complete
ea7d5dc89438: Pull complete
4a05570971bb: Pull complete
66f679cd5859: Pull complete
89362eaac850: Pull complete
d76c23323cb4: Pull complete
f7a113d2d566: Pull complete
f7ffd00be2be: Pull complete
dd678d267c76: Pull complete
97f6f322fa52: Pull complete
51d085dee99e: Pull complete
Digest: sha256:29918ba10b2960ee304e0231fd62b9f9acbb5795aa978d52ab8bb1a9b0ce8fa7
Status: Downloaded newer image for tomcat:8

3.2. 이미지 확인

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              8                   df50c9d355cf        17 hours ago        463MB

3.3. 실행

# docker run -d -i -t -p 8080:8080 tomcat:8
f537532e716c3d968804c9c096d5a42afcb817d79d14dbbc13c4cb4f3d1563a3

3.4. 실행 확인

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f537532e716c        tomcat:8            "catalina.sh run"   35 seconds ago      Up 33 seconds       0.0.0.0:8080->8080/tcp   reverent_darwin

3.5. 리부팅

docker restart [ID] 커맨드를 이용한다.

3.6. 사실 더 빠른 방법

docker run 시에 local 이미지가 없으면 pull 과정까지 함께 한다. 그리고 --name 옵션으로 이름까지 지정할 수 있다.

# docker run -d -i -t -p 8080:8080 --name tomcat8 tomcat:8
Unable to find image 'tomcat:8' locally
8: Pulling from library/tomcat
9a0b0ce99936: Pull complete
db3b6004c61a: Pull complete
f8f075920295: Pull complete
6ef14aff1139: Pull complete
962785d3b7f9: Pull complete
631589572f9b: Pull complete
c55a0c6f4c7b: Pull complete
379605d88e88: Pull complete
e056aa10ded8: Pull complete
6349a1c98d85: Pull complete
Digest: sha256:77e41dbdf7854f03b9a933510e8852c99d836d42ae85cba4b3bc04e8710dc0f7
Status: Downloaded newer image for tomcat:8
ba0f54928433e157d34f633d3f4da947d4cb567f8109e2c114e38e79d9199964
root@ip-172-31-33-222:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
ba0f54928433        tomcat:8            "catalina.sh run"   6 seconds ago       Up 4 seconds        0.0.0.0:8080->8080/tcp   tomcat8

4. 테스트

4.1. 기본 화면 호출

4.2. 테스트 화면 배포

이런 test.jsp 를 만들어보자.

<% out.print("This is test"); %>

그리고 test.jsp를 도커 톰캣으로 넘겨줌.

# docker cp ~/test.jsp reverent_darwin:/usr/local/tomcat/webapps/ROOT

참고로 위의 reverent_darwin 는 내가 별도로 도커 이름을 지정 안 해서 임의로 지정된 것임.

물론 이름을 바꿀 수 있다. 아래는 sharp_mirzakhani라는 임의의 이름이 지정된 상태인데..

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
7b867d7794fa        tomcat:8            "catalina.sh run"   16 minutes ago      Up 6 minutes        0.0.0.0:8080->8080/tcp   sharp_mirzakhani

docker rename 하면 이름을 변경할 수 있다. tomcat8_1로 바꿔보자.

$ docker rename sharp_mirzakhani tomcat8_1
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
7b867d7794fa        tomcat:8            "catalina.sh run"   16 minutes ago      Up 7 minutes        0.0.0.0:8080->8080/tcp   tomcat8_1

4.3. 테스트 화면 호출

# curl http://localhost:8080/test.jsp
This is test

5. 이미지 생성

기본 tomcat 이미지에 위 test.jsp를 추가한 컨테이너를 이미지화해보자.

$ docker commit -m "initial commit" -a "tomcat8_my_inmage" tomcat8_1 tomcat8:0.1

이미지 목록을 확인.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat8             0.1                 961644e963a6        7 seconds ago       463MB
tomcat              8                   f3159377bac1        7 days ago          463MB
tomcat              <none>              df50c9d355cf        5 weeks ago         463MB

이미지 삭제

$ docker rmi [IMAGE_ID]

댓글 1

로그인 후 댓글을 남길 수 있습니다.

  • bblueice· 2020년 5월 28일
    Docker tomcat 설치 후 4.테스트에서 curl http://localhost:8080 하면 아래와 같이 접속이 안되어 문의 드립니다. HTTP 상태 404-찾을 수 없음 타입 상태보고 설명 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. Apache Tomcat/8.5.55 추가적인 설정이 필요한지요?