synology docker를 이용하여 mongodb 설치 및 인증 모드로 사용하기

아직까지 Synology NAS에서 mongodb를 사용하려면 정식 패키지 센터에서 다운로드 받아 사용할 수 없습니다.

하지만, nas 패키지 센터에서 다운로드 받을 수 있는 Docker 컨테이너를 이용하여, 여기에 mongoDB를 올려서 사용이 가능합니다.

우선 패키지센터에서 docker부터 다운로드 받습니다.

스크린샷 2017-02-16 오후 10.55.03

여기서는 docker에 대해서 자세히 다루지 않고, Synology NAS에서 mongodb를 설치 하는 과정만 안내할 예정입니다.

Docker에 대해 자세히 알기 위한 좋은 유튜브 동영상이 있어 소개 드립니다. 관심있으신 분은 한번쯤 보셔도 좋을듯합니다.

설치된 docker를 실행하여 아래와 같은 화면을 볼수 있습니다.

저는 NAS에서 현재 mongodb와 개인 gitlab을 운영하고 있습니다.(redis는 gitlab의 종속적인 컨테이너입니다.)

처음 설치 하시면, 아마 “실행중인 컨테이너”에 아무 컨테이너도 보이지 않겠지요?

스크린샷 2017-02-16 오후 11.02.52

그럼 mongoDB 이미지를 내려 받기 위해 좌측에 “레지스트리” 메뉴를 선택합니다.

레지스트리는 docker 컨테이너용으로 배포되는 이미지를 간편하게 다운로드 받을 수 있습니다. 

우리는 여기서 mongoDB를 키워드로 검색하여 이미지를 내려 받으면 됩니다.

스크린샷 2017-02-16 오후 11.11.05

위처럼 다양한 mongodb 배포판이 존재하는데요. 추천 표시가 있는 맨위에 “mongo” 이미지를 다운로드 받습니다.

 

스크린샷 2017-02-16 오후 11.13.15

다운로드 받기전에 “태그”라는걸 선택하라고 하는데, 간단히 말해 설치할 mongoDB 이미지의 버젼입니다. 

저는 최신버젼(latest)을 선택했습니다.

이제 좌측 메뉴중 이미지를 클릭하여 설치된 이미지를 확인합니다.

스크린샷 2017-02-16 오후 11.18.35

두번째에 설치된 mongoDB 이미지가 보인다면 정상적으로 다운로드 받으신겁니다.

이제 다운로드 받은 이미지를 통하여 mongoDB컨테이너를 생성하고 실행 할 수 있습니다.

설치한 이미지를 선택하고 상단에 있는 “실행” 버튼을 클릭합니다.

docker 실행을 위해서는 다양한 옵션을 줄 수 있는데, Synology NAS의 Docker패키지에서는 이 과정을 Wizard형태로 만들어 놓았습니다. (이전버젼에서는 docker run 명령으로 실행하는 옵션이 있었는데, 최신버젼에서는 없어졌나봅니다)

잡설이 길었구요~

실행버튼을 누르면 컨테이너 생성 Wizard가 뜹니다.

스크린샷 2017-02-16 오후 11.23.14

첫화면은 컨테이너 이름과 리소스에 대한 설정입니다. 저는 이부분 체크 박스 없이 진행했습니다.

이제 “고급설정”을 클릭하면 컨테이너의 세부 내용을 설정할 수 있습니다.

그중 제가 설정한 부분을 위주로 설명드립니다.

“볼륨”

스크린샷 2017-02-16 오후 11.27.00

이부분을 이용하여 NAS상의 폴더를 Docker컨테이너 내에 마운트 할 수 있습니다.

저는 MongoDB 데이터 폴더를 NAS상의 폴더로 마운트했습니다.

“포트”

스크린샷 2017-02-16 오후 11.29.14

컨테이너가 사용할 포트와 Docker 호스트의 서비스 포트를 지정합니다.

“환경”

스크린샷 2017-02-16 오후 11.32.55

이부분은 컨테이너 실행시에 전달할 파라미터 및 실행명령을 지정할 수 있습니다.

사실 이부분 때문에 많은 삽질을 했는데요.

이번 포스팅에서 두번째 주제로 다루는 MongoDB 인증모드 실행 때문이었습니다.

기본적으로 MongoDB는 Default로 인증이 존재 하지 않습니다.

그래서 config파일을 이용하여  security.authorization 부분을 활성화(enabled)하여 실행하는데요.

config파일을 만들어 컨테이너 재시작을 해도 인식이 안되는겁니다..;;

많은 삽질끝에 답은 아닐지 모르겠으나,  환경 > 실행명령에 –auth옵션을 붙여서 설정하였습니다. (이렇게 하면 컨테이너 실행시에 인증모드로 실행이 됩니다.)

이렇게 설정 후에 고급설정창을 닫고 “다음”버튼을 누르면 앞에서 설정한 내용이 요약되어 나옵니다.

스크린샷 2017-02-16 오후 11.47.03

적용을 누르면 컨테이너가 자동으로 실행이 됩니다.

좌측의 “비디오 형식”이라는 메뉴를 클릭해서 생성한 컨테이너를 확인합니다.(저는 이게 번역이 잘못되지 않았나 싶습니다. 영문 DSM에서는 Container라고 되어 있는데, 왠? 비디오?…ㅋㅋ) 

스크린샷 2017-02-16 오후 11.50.16

이제 콘솔로 접속해서, 사용자를 생성하면 됩니다.

실행되고 있는 mongo를 두번 클릭해서 세부사항 보기 창을 열고, 터미널탭을 엽니다.

터미널을 통해서 실행되고 있는 컨테이너에 접속할 수 있습니다.

상단에 “생성”버튼을 눌러 shell을 엽니다.

mongo명령을 이용하여 mongodb에 접속합니다.

스크린샷 2017-02-16 오후 11.53.25

그리고 아래와 같이 사용자를 생성합니다.

위와 같이 사용자를 생성하면 생성한 사용자를 이용하여 인증 모드의 MongoDB를 DB클라이언트로 접속 할 수 있습니다.

생성한 사용자로 Synology Docker 컨테이너 터미널에서 접속을 하려면 아래와 같이 접속하시면 됩니다.

이상 Synology Docker에 MongoDB 설치 및 인증 모드로 실행에 대한 포스팅을 마칩니다.

docker mongodb에 대한 메뉴얼은 docker사이트의 mongo Official Repo URL을 참고 하시면 됩니다. (https://hub.docker.com/_/mongo/)

MongoDB 인증에 대하여 더 좋은 방법이 있으면, 조언 부탁드립니다.

감사합니다.

 

 

You may also like...

  • Proplcy

    실행명령어 쪽에 mongod –auth 를 입력해야 하는데 스샷에는 mogodb 라고 되어 있어서 좀 해맷네요.. 올려주신 글 덕분에 잘 설치했습니다~

    • Seunghoon Lee

      도움이 되셨다니 다행입니다^^