시놀로지 NAS의 일부 저가형 모델을 제외한 최근 출시되는 모델들은 가상화(Virtualization) 기술에 기반한 VM(Virtual Machine) 방식과 응용프로그램 가상화 기술에 기반한 도커(Docker) 가상화를 지원한다. 이번 포스트에서는 도커 기반 가상화를 통해 MariaDB를 설치하고 원격에서 접속할 수 있도록 설정하는 과정을 포스팅 한다.
MariaDB의 데이터베이스와 설정파일의 외부 디렉토리 생성
응용프로그램 가상화 기술인 도커 기반의 컨테이너는 응용프로그램의 파일들, 여기서는 MariaDB의 실행파일들과 설정파일, 데이터베이스 파일을 하나의 이미지파일 형태로 묶어서 관리한다. 때문에 데이터가 저장되는 데이터베이스와 마리아DB의 모든 설정파일을 컨테이너에 저장하게 되면 꽤나 불편한 상황이 발생할 수 있다.
그래서 다음과 같이 데이터베이스 파일이 저장될 디렉토리와 마리아DB의 환경설정을 변경할 수 있는 파일이 저장되는 디렉토리를 파일스테이션을 실행하여 컨테이너의 외부, 즉 호스트에 저장하여 백업이나 업그레이드 등이 편리하도록 외부 디렉토리를 만들어 준다.

경로는 파일스테이션에 docker라는 경로 아래에 위 화면과 같이 만들어 준다.
- /docker/MariaDB/conf.d : MariaDB의 my.cnf 를 오버라이딩하거나 새로운 설정을 추가할 때 사용할 설정파일이 저장되는 경로
- /docker/MariaDB/mysql : MariaDB의 데이터베이스가 저장될 경로
MariaDB의 도커 이미지 다운로드 – 도커 허브(Docker Hub)
시놀로지 NAS에 Docker를 설치하면 표시되는 Docker를 실행한 뒤 “레지스트리” 메뉴를 선택하면 아래와 같이 다운로드 받을 도커 이미지를 검색하고 다운로드 받을 수 있다.

“도커 이미지를 다운로드 받는다”는 의미는 PC 또는 서버에 설치할 응용프로그램 설치파일을 다운로드 하는 것과 같다.
위 화면과 같이 검색창에 “mariadb”을 입력하고 검색하면 mariadb 이미지가 최상단에 표시된다. 다운로드 횟수가 많은 표준 이미지를 다운로드 받는 것이 좋다.
mariadb 이미지를 선택하고 “다운로드” 버튼을 누르거나 마우스 우클릭하면 표시되는 팝업메뉴에서 “이 이미지 다운로드”를 선택해 다운로드 받는다.

다운로드 받을 버전을 선택하게 되는데… 특별한 이유가 없다면 latest 버전을 다운로드 받는다.

잠시 기다린 후 “이미지” 메뉴로 이동하면 다음가 같이 다운로드 된 MariaDB의 이미지가 보인다.

MariaDB 이미지를 선택하고 “실행” 버튼을 누르면 선택한 이미지를 기반으로 실제 실행될 컨테이너를 생성한다. 컨테이너에는 이미지와 달리 실행 시 필요한 다양한 런타임 설정 정보들이 포함되는 실행할 때 사용되는 “런타임 이미지” 정도로 생각하면 된다.
“실행” 버튼을 누르면 실행에 필요한 다양한 설정을 하게 된다.
가장먼저 “컨테이너 이름”과 실행 시 권한을 물어본다.

“높은 권한을 사용하여 컨테이너 실행”을 체크하게 되면 컨테이너는 root 권한으로 실행된다. 보안 상 문제가 있을 수 있음을 명심하자. MariaDB의 접속 포트가 인터넷에 공개되거나 많은 사용자가 접근할 수 있는 환경이라면 삼가야 한다.
“고급 설정”을 눌러 추가 설정을 해야 한다.
먼저 NAS가 재실행되거나 MariaDB 컨테이너가 비정상 종료 된다면 자동으로 재시작 되도록 설정한다.

다음은 볼륨 설정 즉 외부 경로 맵핑이다. 앞에서 생성한 데이터베이스 저장경로와 설정 파일의 경로를 아래와 같이 “폴더 추가” 버튼을 눌러 추가해 준다.

다음은 네트워크 설정이다. 만약 MariaDB를 호스트 즉 시놀로지 NAS 내에서만 접속하도록 하거나 포트 포워딩 등 NAT 설정을 통해 간접적으로 접속하도록 하려 한다면 별도의 네트워크 설정을 해야하지만 그렇지 않고 시놀로지 NAS 자체의 IP를 공유하여 시놀로지 NAS(호스트) 외부에서 자유롭게 접속할 수 있도록 하게 한다면 아래 처럼 “Doker 호스트와 동일한 네트워크 사용”을 체크하면 된다.

호스트와 동일한 포트번호를 사용하므로 포트 설정은 건너 뛴다.

마지막은 환경변수 설정이다. 다음과 같이 2개의 설정만 해주면 된다.

MySQL의 경우 MYSQL_ROOT_PASSWORD이고 MariaDB의 경우 MARIADB_ROOT_PASSWORD이다. 보안상 문제가 될법한데… 어떤 문제가 있는지는 조금 더 확인해봐야 겠다.
모두 설정했다면 “적용” 버튼을 누른다.
다시 컨테이너 생성 화면으로 넘어와서 “다음” 버튼을 누른다.

마지막으로 설정된 내용을 보여주고 “완료” 버튼을 누르라고 한다. 아래의 “마법사 완료 후 이 컨테이너 실행” 체크를 통해 바로 MariaDB 컨테이너를 실행할 수 있다.

정상적으로 설정이 완료되었다면 아래 화면처럼 “실행 중”으로 표시되고 CPU 사용율과 RAM 사용량을 보여준다.

원격에서 시놀로지 NAS의 MariaDB 접속하기
원격 PC에 설치된 DBeaver에서 MariaDB 접속 정보 설정을 해준다.

IP는 시놀로지 NAS의 자체 IP이고 포트도 기본포트인 3306이다.
접속계정은 DB관리자 계정인 root 이고 비밀번호는 MARIADB_ROOT_PASSWORD에 설정된 비밀번호다.
정상적으로 접속됨을 확인한다.

이렇게 설정해두면 다른 응용프로그램들이 이 MariaDB를 사용하기가 훨씬 수월해진다.