1. 시놀로지에서의 Docker 사용과 Container Manager
시놀로지 NAS는 기본적으로 도커(Docker) 사용을 지원하기 위한 패키지를 포함하고 있다.
최근 DSM이 7.2로 upgrade 되기 전에는 이 프로그램 패키지는 예쁜 고래 모양을 한 아이콘을 사용하고 있었고, 프로그램 패키지의 이름은 Docker였다.
이 과거의 시놀로지의 Docker 패키지는 시놀로지에서 Docker 이미지들을 사용할 수 있는 방법을 제공하기는 했지만, 실제 사용시(특히 docker-compose) 복잡한 설정을 필요로 하는 불편한 점도 알려져 있었다. 때문에, 시놀로지에서의 Docker 이미지 사용이 쉽지만은 않기도 했다.
그런데, 2023년 들어 DSM이 7.2로 Upgrade 되면서, 기존의 고래 모양이었던 Docker가 없어지고, 그 대신 “Container Manager”라는 새로운 이름의 패키지로 대체되었고, 사용도 이전보다 편리해졌다고 한다.
다만, 아직 모든 시놀로지 기종에서 완벽한 상태는 아닌듯하다. 내가 사용 중인 1621+에서는 설치가 완료되면, 설치된 퍼지기에는 나타나지만, 모든 패키지에서는 container manager가 아이콘의 형태로는 표시되질 않는다. 그러면서도 키워드 검색을 하면 다음 화면처럼 검색은 되는 상태이다.
2. Container Manager 기본 사용법
어찌 되었건, 시놀로지 DSM 7.2에서 Docker를 사용하려면 이제는 이 container manager를 설치하는 게 필수이다. Container manager 설치를 마치면, 다음과 같이 바탕화면에 Container Manager 아이콘이 생성되며
이를 실행시키면 다음과 같은 화면이 나타난다. 인터페이스 자체는 기존 Docker라는 이름의 패키지 때와 거의 비슷하다.
기본적인 사용법은
먼저 레지스트리 항목에서 설치하려는 Docker 이미지를 먼저 찾고, 이미지가 찾아지면 이미지를 선택하고, 바로 위의 “다운로드” 명령을 이용하여 다운로드 하면 된다. 한편, 오른쪽 끝부분의 화살표를 선택하면 Dockeerhub로 연결되어, 이 이미지에 대한 자세한 정보를 살펴볼수도 있다.
다운로드 단계에서 다음과 같은 태그 지정 화면이 나오면 대개의 경우 “latest”를 지정해 주면 된다.
(간혹 버전에 따라 특정 CPU를 지원하지 않는 경우 다른 버전을 지정할 수도 있다.)
다운로드가 완료되면, 다음과 같이 이미지 탭에서 확인할 수 있다. 또한, 이 이미지 탭에서는 이미 다운로드했던 도커이미지중 Update 할 수 있는 경우에는 다음과 같이 update 사항이 있음을 알려주기도 한다. 이미지 이름 앞에 파란색이 켜진 것은, 다운로드한 이미지들이 이미 컨테이너로 사용 중인 경우이다.
다운로드한 이미지로 컨테이너를 생성하는 방법은, 이미지를 선택하고 실행 메뉴를 선택해 주면 된다.
그러면 시놀로지의 설치 마법사가 중요한 정보들을 체크해 주고, 변경도 할 수 있게 해준다. 주로 포트 번호와 관련 정보를 저장할 Volume 설정값, 재시작 정책 등이다. 우선 기본값을 그대로 사용하고 나중에 필요시 변경해도 된다.
설정을 마치면 자동으로 설치가 진행되고,
이미지 탭에서는 방금 설치한 이미지 이름 앞에도 파란색이 표기되어 이미지가 사용 중임을 표시해 주고,
컨테이너 탭으로 이동해 보면, 해당 도커이미지가 컨테이너로 잘 설치된 것을 확인할 수 있게 된다.
대개의 도커 이미지들은 이러한 방법으로 설치가 가능하며 (단, Prtainer는 예외), 이렇게 설치된 컨테이너들은 시놀로지 NAS의 IP 주소와 해당 컨테이너에 할당된 포트 번호를 이용하여 브라우저에서 열고 사용할 수가 있다.
3. 시놀로지에서 Docker 설치 예제
몇 가지 설치된 컨테이너 접속 예를 보면, 시놀로지 NAS의 IP 주소가 192.168.1.94일 때
CMS인 Nginx를 설치 후 32773 포트를 이용하여, 설치된 초기 Nginx 화면에 접속한 예이며,
WordPress의 경우도 복잡한 과정 없이 Container Manager에서 이미지를 이용하여 설치한 후, 32776 포트를 이용하여 접속하는 것만으로 다음과 같은 초기 화면에 접속할 수 있었다.
비디오 스테이션과 유사한 Jellyfin도 성공적으로 간단히 설치했고,
클라우드용 프로그램인 nextcloud와
토렌트 프로그램인 transmission 등의 opensource 프로그램들도 모두 이와 동일한 방법으로 간편하게 단순히 Container manager 내에서 이미지를 검색해 설치한 것만으로, 기본 접속 및 사용이 가능하였다.
이들 프로그램 모두, 일일이 Dockerhub에서 이미지를 추가로 검색할 필요가 없이 Container manager 내에서 검색이 가능했고, 이미지를 선택한 후 Docker 이미지를 설치하기 위한 복잡한 설정이 필요하지 않았다. 그저 다운로드한 이미지를 선택해 실행시킨 것만으로 (복잡한 설정 없이도) 성공적으로 컨테이너 생성이 되었고, 각각 할당된 프트 번호만을 활용하여 위와 같은 초기 화면들에 접속할 수 있었다.
참고로, 이전 글들에서 개별적으로 Docker image를 Dockerhub에서 찾아 OMV NAS에 설치하는 경우, 때로는 복잡한 설정들이 필요해서 애를 먹은 적들이 있었는데, 시놀로지의 Container Manager에서는 이런 것들이 전혀 필요하지 않았기에 매우 편리해졌다고 느껴졌다.
비교 1. OMV NAS에 Dockerhub로 Nginx 설치 예
https://blog.naver.com/mythee1/223091893855
비교 2. OMV NAS에 Dockerhub로 WordPress 설치 예
https://blog.naver.com/mythee1/223092492027
4. Container Manager 사용시 아쉬운 점 – 포트번호 고정과 Portainer 설치
이렇게 설명한 것처럼 시놀로지의 Container manager를 이용하여 Docker Container를 기본적인 방법으로 설치하면, 매우 간편해서 편리한 점은 있지만, portainer는 이렇게 설치할수 없다는 점과, 별도로 포트번호를 고정해 주지 않으면 매번 포트번호가 변동되는 아쉬운 점도 있다.
1) Port 번호의 의임의 할당 문제
포트가 임의 할당되므로, 특정 컨테이너 이미지가 Update되거나, 다른 이유로 docker 컨테이너가 재시동 되는 경우, 할당된 NAS의 포트 번호가 변경되는 경우가 발생한다. 즉 외부에서 Nginx를 이용한 홈페이지에 접속시 처음에는 32777 포트로 접속했으나, 다음에는 32778 포트로 접속해야 한다든가 하는 상황이 발생할 수 도 있게 된다. 이것은 Container가 재실행될때마다, container manager가 별도 지정이 없는 경우 임의로 새로운 포트 번호를 할당하기 때문으로, 각 컨테이너에 할당되는 포트번호를 container manager의 설정 메뉴를 이용하거나, portainer 같은 도커 관리도구를 이용하여 고정시켜면 간단히 해결할 수 있다.
Container manager를 이용하는 경우는 다음과 같이 특정 컨테이너를 선택하고, 설정 메뉴로 들어가 다음화면과 같은 포트 설정 부분에서 특정포트를 지정해 주면 된다. 이러한 포트 지정은 컨테이너 실행을 중지시킨 상태에서 설정해야 한다.
만일 portainer에서 port 번호를 고정하는 경우에는 다음과 같이 특정 컨테이너를 생성후, 설정 변경 메뉴로 들어와 아래 화면의 “+publish a new network port”를 이요하면 된다.
2) Portainer 설치의 문제
시놀로지 NAS에서 위와 같이 Container Manager를 이용하여 Docker Container를 설치할 수 있지만, Docker 관리도구인 Portainer는 예외적으로 이렇게 설치할 수 없으며, 별도의 방법을 사용해야 한다.
다음의 글에서 시놀로지 NAS에 portainer를 설치하는 자세한 방법을 소개하였다.
https://blog.naver.com/mythee1/223137694413
어찌 되었건, 시놀로지 DSM 7.2에서 Docker를 사용하려면 이제는 이 container manager를 설치하는 게 필수이다. Container manager 설치를 마치면, 다음과 같이 바탕화면에 Container Manager 아이콘이 생성되며

