DS918+ 를 다룰 때 반복해서 쓰는 것들. 작업하면서 옆에 두고 보는 용도.
DS918+ · CPU Celeron J3455 (QuickSync 지원)192.168.0.240 · DDNS jjang.synology.me5521DSM → 제어판 → 터미널 및 SNMP → SSH 서비스 활성화
ssh jjang@192.168.0.240
DSM 7 에서는 docker 가 PATH 에 없다. 전체 경로를 쓴다.
sudo /usr/local/bin/docker ps
매번 치기 번거로우면:
echo "alias docker='sudo /usr/local/bin/docker'" >> ~/.profile
source ~/.profile
permission denied while trying to connect to the Docker daemon socket
→ sudo 를 붙이거나, Portainer 웹 UI 를 쓴다.
synogroup --add docker jjang 로 그룹에 넣을 수도 있지만
docker 그룹 = 사실상 root 권한이고 DSM 업데이트 때 원복되므로 권하지 않는다.
/volume1/001_PIC — 사진/volume1/010_MV — 영화/volume1/020_MS — 음악/volume1/docker — 컨테이너 설정·데이터 (윈도우에서 S: 로 매핑됨)/volume1/@docker/volumes — 도커 네임드 볼륨 실체 (시스템 폴더, File Station 에 안 보임)/volume1/_docs 대신 /volume1/docker/_docs — 이 문서들의 원본 마크다운/volume1/docker 는 공유폴더라 시놀로지 ACL 이 걸려 있다.
chmod 777 을 줘도 컨테이너가 쓰기에 실패하는 일이 있다.
ls -ln /volume1/docker # 끝에 '+' 가 붙어 있으면 ACL 존재
sudo synoacltool -get /volume1/docker/<폴더>
sudo find /volume1/docker/<폴더> -exec synoacltool -del {} \;
대부분은 네임드 볼륨으로 피하는 것이 답이다.
→ 시놀로지 도커 함정
제어판 → 보안 → 방화벽. 현재 프로파일 custom 의 규칙 요약 (위에서부터 우선 적용):
16881, UDP 6881, eMule 4662/467280,443,8080,8443 TCP — 모두 허용1194 UDP — 모두 허용 (OpenVPN)5521 TCP — 대한민국 만 허용 (DSM 관리)192.168.0.x — 모든 포트 허용 (내부망)10.8.0.x — 모든 포트 허용 (OpenVPN 클라이언트)172.16.0.0/12 — 모든 포트 허용 (도커 브리지)53 UDP — 내부망 허용 (AdGuard DNS)규칙을 추가하면 반드시 맨 아래 "모두 거부"보다 위에 놓아야 한다. 규칙은 위에서부터 적용된다.
그리고 대화상자의확인만으로는 반영되지 않고, 화면 우측 하단의적용까지 눌러야 한다.
NAS 방화벽을 열어도 공유기가 포워딩하지 않으면 외부에서 도달하지 않는다.
두 곳이 모두 열려야 인바운드가 성립한다.
실측 결과 (2026-09-03):
116.126.81.163 (DDNS jjang.synology.me)443 → 열림 (NPM HTTPS)8443 → 닫힘 — 방화벽에는 열려 있지만 공유기가 넘기지 않음16881 → 닫힘 — BT 포트, 공유기 포워딩 없음즉 실제 인터넷 노출면은 80/443 정도로, 방화벽 규칙만 보고 짐작한 것보다 좁다.
설정과 실제를 일치시키려면 쓰지 않는 8080·8443 규칙은 정리하는 편이 낫다.
① 내부에서 공인 IP로 접속 — 공유기가 헤어핀 NAT 를 지원하면 검사할 수 있다.
Test-NetConnection -ComputerName jjang.synology.me -Port 443
443 이 열림으로 나오면 헤어핀이 동작한다는 뜻이므로, 같은 방식으로 다른 포트도 검사할 수 있다.
② 외부망에서 확인 (가장 확실) — 폰의 와이파이를 끄고 LTE 로 포트 체크 사이트에서 확인.
③ UPnP 자동 등록 확인 — 직접 설정하지 않아도 DSM 이 공유기에 포트를 열어둔 경우가 있다.
제어판 → 외부 액세스 → 라우터 구성
① 방화벽은 내부망도 검사한다. 위 규칙에 내부 대역 허용이 있어서 체감이 없을 뿐이다.
② 도커가 게시한 포트는 방화벽을 우회하는 경우가 많다. DNAT 경로가 방화벽 검사 지점을
건너뛰기 때문. 즉 컨테이너 포트를 방화벽으로 막고 있다고 믿으면 안 된다.
제어판 → 작업 스케줄러 → 생성 → 예약된 작업 → 사용자 정의 스크립트
(사용자를 root 로 지정해야 docker 명령이 실행된다)
자주 쓰는 것:
# 사용하지 않는 이미지 정리 (매주)
/usr/local/bin/docker image prune -af
# 컨테이너 주기적 재시작
/usr/local/bin/docker restart <컨테이너>
"작업 결과를 이메일로 전송" 옵션을 켜면 실패 시 알림을 받을 수 있다.
이미 DSM 에 있는 기능이면 그것부터 써본다. 컨테이너를 늘리면 RAM 과 관리 부담이 는다.
반대로 도커가 나은 것:
5521 이 국내 IP 에 열려 있다. VPN 접속 후에만 쓰도록 좁히는 것이 안전하다8080 / 8443 이 전 세계에 열려 있다. 무엇이 쓰는지 확인하고 불필요하면 닫을 것sudo netstat -tlnp | grep -E ':(8080|8443)'
8GB 가 상한이다. 컨테이너를 추가하기 전에 여유를 확인한다.
free -h
sudo /usr/local/bin/docker stats --no-stream
대략의 소비:
sudo /usr/local/bin/docker ps --format "{{.Names}}: {{.Ports}}" — 포트 충돌 확인free -h — 메모리 여유 확인services.yaml 에 타일 추가/volume1/docker/_stacks 에 저장