System & Infrastructure/NAS

[시놀로지 Docker] SSH로 Tomcat 컨테이너 내부 접근하기 - 실전 가이드

ai-one 2025. 5. 5. 08:42

[시놀로지 Docker] SSH로 Tomcat 컨테이너 내부 접근하기 - 실전 가이드

시놀로지 NAS에서 Docker로 구동 중인 Tomcat 컨테이너에 접근하는 방법을 단계별로 알아보겠습니다. SSH 접속부터 컨테이너 내부 파일 시스템 탐색까지, 실제 사례를 바탕으로 자세히 설명해 드리겠습니다.

1. 시놀로지 NAS에 SSH 접속하기

먼저 터미널(리눅스/맥) 또는 PuTTY(윈도우)를 사용하여 시놀로지 NAS에 SSH로 접속합니다:

 
bash
ssh admin@192.168.1.100

여기서 'admin'은 시놀로지 계정명, '192.168.1.100'은 시놀로지 NAS의 IP 주소입니다. 접속 후 비밀번호를 입력하면 다음과 같은 화면이 표시됩니다:

 
admin@192.168.1.100's password: 
Linux SynologyNAS 4.4.180+ #42962 SMP Mon Oct 29 12:24:40 CST 2021 x86_64

Welcome to Synology DiskStation

DSM 7.1.1-42962 Update

2. Docker 컨테이너 확인하기

접속에 성공했다면, 다음 명령어로 현재 실행 중인 Docker 컨테이너를 확인합니다:

 
bash
sudo docker ps

출력 예시:

 
CONTAINER ID   IMAGE             COMMAND                  CREATED        STATUS        PORTS                                        NAMES
a1b2c3d4e5f6   tomcat:9.0        "catalina.sh run"        2 days ago     Up 2 days     0.0.0.0:8080->8080/tcp                       tomcat_webapp

특별히 Tomcat 컨테이너만 보고 싶다면:

 
bash
sudo docker ps | grep tomcat

3. Tomcat 컨테이너 내부로 접속하기

확인된 컨테이너 ID를 사용하여 내부 셸에 접속합니다:

 
bash
sudo docker exec -it a1b2c3d4e5f6 /bin/bash

성공적으로 접속되면 다음과 같이 프롬프트가 변경됩니다:

 
root@a1b2c3d4e5f6:/usr/local/tomcat#

이제 컨테이너 내부에 있으며, 일반적인 리눅스 명령어를 사용할 수 있습니다.

4. Tomcat 설치 경로 확인 및 탐색하기

대부분의 Tomcat Docker 이미지에서는 Tomcat이 /usr/local/tomcat에 설치되어 있습니다. 다음 명령어로 현재 디렉토리 구조를 확인해 볼 수 있습니다:

 
bash
ls -la

출력 예시:

 
total 152
drwxr-xr-x 1 root root  4096 Apr 25 09:14 .
drwxr-xr-x 1 root root  4096 Apr 25 09:14 ..
-rw-r--r-- 1 root root 18982 Mar 14 09:16 LICENSE
-rw-r--r-- 1 root root  5432 Mar 14 09:16 NOTICE
-rw-r--r-- 1 root root  2333 Mar 14 09:16 RELEASE-NOTES
-rw-r--r-- 1 root root 12761 Mar 14 09:16 RUNNING.txt
drwxr-xr-x 2 root root  4096 Mar 30 10:21 bin
drwxr-xr-x 1 root root  4096 Apr 25 09:15 conf
drwxr-xr-x 2 root root  4096 Mar 30 10:21 lib
drwxrwxrwx 1 root root  4096 Apr 30 15:42 logs
drwxr-xr-x 2 root root  4096 Mar 30 10:21 temp
drwxr-xr-x 7 root root  4096 Mar 30 10:21 webapps
drwxr-xr-x 2 root root  4096 Mar 30 10:21 work

주요 디렉토리 탐색:

 
bash
# 웹 애플리케이션 확인
ls -la webapps/

# 로그 파일 확인
ls -la logs/

# 설정 파일 확인
ls -la conf/

Tomcat 버전 확인:

 
bash
cat RELEASE-NOTES

5. 실제 배포된 웹 애플리케이션 확인하기

webapps 디렉토리에 배포된 애플리케이션을 확인합니다:

 
bash
cd webapps
ls -la

출력 예시:

 
total 16
drwxr-xr-x 7 root root 4096 Mar 30 10:21 .
drwxr-xr-x 1 root root 4096 Apr 25 09:14 ..
drwxr-xr-x 3 root root 4096 Mar 30 10:21 ROOT
drwxr-xr-x 4 root root 4096 Apr 28 14:32 myapp

특정 애플리케이션의 WEB-INF 디렉토리를 확인하여 설정 파일을 볼 수 있습니다:

 
bash
cd myapp/WEB-INF
ls -la

6. 설정 파일 수정하기

server.xml과 같은 중요한 설정 파일을 확인하고 수정할 수 있습니다:

 
bash
cd /usr/local/tomcat/conf
cat server.xml

수정이 필요한 경우, vi 에디터를 사용할 수 있습니다:

 
bash
vi server.xml

Tomcat 컨테이너에 vi가 설치되어 있지 않다면 다음 명령으로 설치할 수 있습니다:

 
bash
apt-get update && apt-get install -y vim

7. 로그 파일 모니터링하기

Tomcat의 로그 파일을 실시간으로 확인할 수 있습니다:

 
bash
cd /usr/local/tomcat/logs
tail -f catalina.out

8. 컨테이너 외부에서 파일 시스템 접근하기

SSH 세션에서 컨테이너를 종료하지 않고도 호스트 시스템에서 컨테이너 볼륨을 확인할 수 있습니다:

 
bash
# 컨테이너에서 나가기
exit

# 컨테이너 볼륨 정보 확인
sudo docker inspect a1b2c3d4e5f6 | grep -A 10 Mounts

출력 예시:

 
json
"Mounts": [
    {
        "Type": "volume",
        "Name": "tomcat_webapps",
        "Source": "/volume1/docker/volumes/tomcat_webapps/_data",
        "Destination": "/usr/local/tomcat/webapps",
        "Driver": "local",
        "Mode": "rw",
        "RW": true,
        "Propagation": ""
    }
]

이제 시놀로지 파일 시스템에서 직접 접근할 수 있습니다:

 
bash
ls -la /volume1/docker/volumes/tomcat_webapps/_data

9. WAR 파일 배포하기

외부에서 컨테이너로 WAR 파일을 복사하여 배포할 수 있습니다:

 
bash
# 로컬에서 시놀로지로 WAR 파일 업로드하기 (별도 SCP 명령)
scp myapp.war admin@192.168.1.100:/tmp/

# 시놀로지에서 컨테이너로 WAR 파일 복사하기
sudo docker cp /tmp/myapp.war a1b2c3d4e5f6:/usr/local/tomcat/webapps/

 

 

이와 같이 SSH를 통해 시놀로지 NAS의 Docker 컨테이너에 접근하면, GUI에서는 제공하지 않는 고급 관리 및 문제 해결 작업을 수행할 수 있습니다. 특히 Tomcat 서버 설정 조정이나 로그 분석, 애플리케이션 배포 등의 작업을 효율적으로 처리할 수 있어 서버 관리자에게 필수적인 기술입니다.