Synology NAS의 패키지 중 Tomcat(톰캣)이 존재합니다. 패키지로 톰캣을 설치하게 되면 나스의 OS 환경에 직접 설치가 됩니다.

Docker를 이용하게 되면 가상 환경에 설치가 되고, 각종 환경을 원하는대로 설정한 후 파일로 내보낸 후 다른 시스템에서 불러오면 미리 설정된 그 환경 그대로 구동할 수 있습니다.

새로운 시스템에서 따로 프로그램 설치나 각종 설정을 해줄 필요가 없는 것이죠..

 

설치과정

 

1. 패키지 센터에서 Docker 설치

먼저 아래 사이트에 접속하여 자신의 나스가 Docker를 지원하는지 확인하기 바랍니다.

https://www.synology.com/ko-kr/dsm/app_packages/Docker

현재 지원 모델 리스트

15 시리즈 : RS815(RP)+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
14 시리즈 : RS3614xs+, RS3614(RP)xs, RS2414(RP)+, RS814(RP)+
13 시리즈 : RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+
12 시리즈 : RS3412(RP)xs, RS2212(RP)+, RS812(RP)+, DS3612xs, DS1812+, DS1512+, DS712+, DS412+
11 시리즈 : RS3411(RP)xs, RS2211(RP)+, DS3611xs, DS2411+, DS1511+, DS411+II, DS411+
10 시리즈 : RS810(RP)+, DS1010+, DS710+


패키지 Docker 설치

  

2. Docker 실행 후 톰캣 설치

  • Docker – 레지스트리 – “tomcat” 검색 후 “tomcat” 다운로드
  • Docker – 이미지 – tomcat 선택 – 실행 – 마법사로 실행

Docker에서 톰캣 설정

1단계에서

컨테이너 이름에 원하는 이름(여기서는 tomcat) 넣고..

로컬 포트에는 실제 접속 시 사용할 포트(여기서는 8081)를, 컨테이너 포트에는 8080, 유형은 TCP로 설정

2단계는 그냥 기본값으로 설정

 

 3. 톰캣 실행

톰캣 실행

빨간색 부분의 스위치 버튼을 클릭하여 실행 후 아래 사이트 접속하여 동작 확인

http://나스IP:8081/

아래와 같은 화면이 표시되면 제대로 동작되는 것입니다.

톰캣 기본 페이지

 

4. 톰캣 환경 설정 및 프로그램 설치

telnet 또는 ssh로 나스의  쉘에 접속한 후 아래 명령 실행(tomcat 대신에 2단계에서 설정한 컨테이너 이름으로 설정)

fs> docker exec -t -i tomcat /bin/bash

위 명령을 내리면 tomcat 컨테이너의 쉘에 접속됩니다. 이제 필요한 프로그램 설치나 개발한 프로그램을 이곳에 배포하면 됩니다.
테스트로 sampler.war를 배포해봅니다. tomcat 컨테이너의 쉘에서 아래 명령을 내려서 sample.war를 배포합니다.

root@tomcat:/usr/local/tomcat# wget http://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war -P /usr/local/tomcat/webapps

wget은 원격지의 웹서버에 있는 파일을 다운로드하는 것인데요.. 만약 나스에 war 파일을 올려두고 컨테이너에 넣고 싶다면 아래와 같은 방법이있습니다.

-나스의 웹루트 폴더에 올려두고 wget 명령으로 다운로드

-컨테이너에서 ftp, ssh 등의 명령으로 나스에 접근하여 다운로드

-나스의 특정 폴더를 컨테이너에 연결

 위 방법 중 마지막 방법을 소개합니다.

[Doker-비디오 형식 – 컨테이너 중지 후 선택 – 편집 – 볼륨 – 폴더 추가]에서 파일/폴더는 나스의 공유 폴더를 선택하고, 마운트 경로에는 컨테이너에서 사용할 폴더명을 입력합니다.

위와 같이 설정하면 컨테이너의 /data로 접근하면 나스의 특정 공유 폴더의 내용이 보입니다.

위에서 설명한 wget 명령대신 아래와 같이 cp 명령으로 복사하면 됩니다.

root@tomcat:/usr/local/tomcat# cp /data/sample.war /usr/local/tomcat/webapps/

 

http://나스IP:8081/sample 로 접속해서 아래와 같은 화면이 표시되면 제대로 동작되는 것입니다.

sample 페이지

쉘에서 apt-get update,apt-get upgrade 명령을 내려 모든 프로그램을 업데이트 합니다.

root@tomcat:/usr/local/tomcat# apt-get update
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [132 kB]
Get:3 http://httpredir.debian.org jessie InRelease [134 kB]
Get:4 http://httpredir.debian.org jessie-updates InRelease [133 kB]
Get:5 http://httpredir.debian.org jessie/main amd64 Packages [9038 kB]
Get:6 http://httpredir.debian.org jessie-updates/main amd64 Packages [3616 B]
Fetched 9503 kB in 7s (1196 kB/s)
Reading package lists... Done
root@tomcat:/usr/local/tomcat# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  tzdata tzdata-java
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 272 kB of archives.
After this operation, 3072 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://httpredir.debian.org/debian/ jessie-updates/main tzdata-java all 2015e-0+deb8u1 [80.5 kB]
Get:2 http://httpredir.debian.org/debian/ jessie-updates/main tzdata all 2015e-0+deb8u1 [192 kB]
Fetched 272 kB in 3s (75.1 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 11712 files and directories currently installed.)
Preparing to unpack .../tzdata-java_2015e-0+deb8u1_all.deb ...
Unpacking tzdata-java (2015e-0+deb8u1) over (2015d-0+deb8u1) ...
Preparing to unpack .../tzdata_2015e-0+deb8u1_all.deb ...
Unpacking tzdata (2015e-0+deb8u1) over (2015d-0+deb8u1) ...
Setting up tzdata (2015e-0+deb8u1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Jul  1 00:37:23 UTC 2015.
Universal Time is now:  Wed Jul  1 00:37:23 UTC 2015.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up tzdata-java (2015e-0+deb8u1) ...

 

5. 내보내기

 이제 설정이 완료된 컨테이너를 파일로 내보냅니다. 다른 시스템에서 그대로 이용하기 위함이죠.

[비디오 형식 – 설정 – 내보내기] 클릭

 

내보내기

 

[컨테이너 콘텐츠 및 설정 내보내기]를 선택

 

내보내기 설정

 

진행 상태 확인

export3

완료되기까지 약 5분 정도 걸리는 것 같습니다.

 

파일스테이션에서 확인해보니 tomcat.syno.txz라는 117.9MB 파일이 하나 생성되었습니다.

 컨테이너 export

해당 파일은 단순히 시스템 폴더 전체를 tar로 두 번 묶고 압축한 파일인 것 같습니다.  압축해제를 몇 차례하니 시스템 폴더 전체 구조가 나오네요.

이제 만들어진 파일(tomcat.syno.txz)을 다른 시스템으로 전송합니다.

 

6. 불러오기

다른 시스템에서 위 과정에서 생성한 컨테이너 파일(tomcat.syno.txz)을 불러와 봅니다.

 

  • 다른 나스에서 불러오기

[이미지 – 추가 – 파일에서 추가]

 컨테이너 불러오기

 추가하는데 시간이 좀 걸립니다. 한 2~3분 정도 걸린 것 같습니다.

아래와 같이 이미지에 추가한 놈이 들어와 있습니다.

 이미지

 

비디오 형식에도 표시됩니다. 선택 후 실행하고..

 비디오 형식

 

샘플 사이트에 접속해보니 제대로 표시됩니다.

import4  

 

  • 일반 리눅스 시스템에서 불러오기

먼저 docker를 설치하고 실행합니다.

[root@localhost home]# yum install docker
[root@localhost home]# service docker start

 

5번 과정에서 내보내기한 이미지 파일(tomcat.syno.txz)을 가져온 후 아래 명령으로 풀고, 임포트합니다. (내보내기한 *.txz는 시놀로지 나스 전용 파일이라서 임포트해봐야 제대로 구동이 안됨)

[root@localhost home]# ll
합계 120712
-rwxr-xr-x. 1 root root 123605672  7월  2 00:22 tomcat.syno.txz
[root@localhost home]# tar xvf tomcat.syno.txz
image.tar
profile.json
[root@localhost home]# cat image.tar | docker import - isulnara/tomcat
5110291a7737d3b39e1506d979a06c45142e7b5d747490a45429d13160354316
[root@localhost home]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
isulnara/tomcat     latest              5110291a7737        9 seconds ago       353.5 MB

docker에 이미지가 제대로 등록되었습니다.

이제 아래 명령으로 실행합니다.

[root@localhost home]# docker run -it --rm -p 8081:8080 isulnara/tomcat /usr/local/tomcat/bin/catalina.sh run

웹브라우저로 http://서버아이피:8081/sample로 접속해서 샘플 사이트가 표시되면 완료된 것입니다.

 

이미지 삭제는 아래 명령으로..

[root@localhost home]# docker rmi isulnara/tomcat
Untagged: isulnara/tomcat:latest
Deleted: 5110291a7737d3b39e1506d979a06c45142e7b5d747490a45429d13160354316

 

 일반적인 자바, 톰캣 설치, 각종 설정 과정이 전혀없이 docker만 설치하고 미리 만들어진 이미지만 가져와서 구동해주면 끝입니다.

 

* 이미지는 클릭하여 크게 볼 수 있습니다.
* 이 팁에서 생성한 이미지 파일: http://fft.kr/tmp/tomcat.syno.txz