Categories

📁

시놀로지 NAS - SSH, Docker 컨테이너 접근과 폴더 매핑 가이드

🗂️ memo
목차

시놀로지 NAS에서 SSH를 통한 접속, Docker 컨테이너 관리, 그리고 폴더 매핑 기능에 대해 정리한 문서입니다.

SSH로 시놀로지 접속하기

SSH를 통해 시놀로지에 접속하는 방법은 크게 두 가지가 있습니다.

1. CMD를 이용한 접속

기본 접속 형식은 다음과 같습니다.

ssh synology-id@domain -p port

도메인이 없는 경우 IP 주소를 사용하시면 됩니다. 예를 들어

  • 도메인: test.synology.me
  • 아이디: id123
  • 포트: 22

이런 경우 아래와 같이 접속합니다.

ssh id123@test.synology.me -p 22

2. PuTTY를 이용한 접속

putty 화면

putty 화면-로그인

PuTTY에서 위 정보를 입력하고 접속하시면 됩니다.

SSH 보안 강화 팁

  1. 기본 포트(22) 변경
    • 대부분의 자동화된 공격은 22번 포트를 타겟팅합니다
    • DSM의 ‘제어판 > 터미널 및 SNMP’에서 변경 가능합니다
  2. 접속 실패시 확인사항
    • SSH 서비스가 활성화되어 있는지 확인
    • 방화벽에서 해당 포트가 열려있는지 확인
    • 사용자 계정에 SSH 접근 권한이 있는지 확인

관리자 권한 획득하기

시놀로지는 보안을 위해 기본적으로 root 계정을 비활성화해둡니다. 따라서 일반 사용자로 로그인 후 관리자 권한을 획득해야 합니다.

sudo -i

이 명령어를 입력하면 root 권한으로 변경됩니다.

저는 대충 쓰긴하지만 보안을 생각하신다면 아래 내용을 지켜주세요.

  • sudo 권한은 필요한 경우에만 사용
  • 작업 완료 후에는 일반 사용자 권한으로 돌아가기
  • sudo 로그 정기적으로 확인하여 비정상적인 접근이 없는지 모니터링하기

Docker 컨테이너 관리하기

기본 명령어

컨테이너 목록 확인:

# 실행 중인 컨테이너만 보기
docker ps

# 모든 컨테이너 보기 (중지된 것 포함)
docker ps -a

# 컨테이너 로그 확인
docker logs [container_name]

# 실시간 로그 보기
docker logs -f [container_name]

컨테이너 접근하기

컨테이너에 접근하기 위한 기본 명령어는 다음과 같습니다:

docker exec -it [container_name] /bin/sh

각 옵션의 의미는 다음과 같습니다:

  • docker: Docker 명령어 실행
  • exec: 실행 중인 컨테이너에 명령 전달
  • -it: 상호작용 가능한 터미널 제공
  • [container_name]: 접속할 컨테이너 이름
  • /bin/sh: 컨테이너의 쉘 실행

보통 컨테이너에 작업이 필요하면 여기까지는 고정인 것 같습니다.


폴더 매핑 활용하기

컨테이너 내부 디렉터리는 NAS DSM에서 직접 접근이 불가능합니다. 이때 폴더 매핑 기능을 활용할 수 있습니다.

기본 매핑 예시

컨테이너 매니저 화면

예를 들어, NAS volume의 /docker/n8n 폴더와 컨테이너 내부의 /n8n 폴더를 매핑한다면 이렇게 하면 되는데요.

매핑이 제대로 되었는지 확인해보겠습니다.

File Station

먼저 File Station에서 /docker/n8n 위치에 테스트 파일 (mount.txt)를 생성합니다.
매핑이 잘 되었다면 컨테이너 내부 /n8n 폴더에도 이 파일이 있어야합니다.

cd /
ls

루트로 이동한 후 모든 파일을 확인해보면

File Station n8n폴더가 보인다

cd n8n
ls

n8n으로 이동 후 ls 하면, 매핑된 폴더의 파일 mount.txt가 보입니다.

File Station

Docker Compose를 통한 매핑

docker-compose.yml 파일을 사용하여 볼륨을 매핑할 수도 있습니다.

version: "3"
services:
  myapp:
    image: myapp:latest
    volumes:
      - /docker/myapp:/app/data
      - /docker/myapp/config:/app/config

매핑된 폴더 활용 사례

  1. 설정 파일 관리
    • 컨테이너 재생성시에도 설정 유지
    • 설정 파일 백업 용이
  2. 로그 모니터링
    • File Station에서 직접 로그 확인 가능
    • 로그 파일 백업 및 분석 용이
  3. 데이터 이전
    • 컨테이너 업그레이드시 데이터 보존
    • 다른 시스템으로 데이터 이전시 활용

주의사항

  1. 권한 설정

    • 매핑된 폴더의 권한 설정 확인
    • 컨테이너 실행 사용자와 폴더 권한 일치 필요
  2. 데이터 관리

    • 매핑된 폴더 삭제시 컨테이너 내부 데이터도 영향받음
    • 중요 데이터는 정기적으로 백업 필요

활용 할 방법이 꽤나 많은 기능입니다. 😎