Synology DockerでmongoDB設置する方法

シノロジーのNASはDockerを使えるので、いろいろなインフラを試すのにぴったりです。簡単なウェブサービスを作るとき、データベースとしてNoSQLを試したくて、今回はmongoDBを導入してみました。必要な方のために、どの順番で作業すればいいかをちょっと見てみましょう。

まず、シノロジーDSMでDockerサービスを開き、レジストリメニューからmongoDBのイメージを選択してください。このとき、自分のNAS CPUを確認して、AVX(Advanced Vector Extensions)サポートがない場合は、バージョン4をダウンロードする必要があります。バージョン5以上はAVX未サポートのCPUでは動作しません。(ちなみに、セレロンはAVXをサポートしていません)

イメージを全て受け取ったら、コンテナを生成してください。ボリュームは’/data/db’パスにマウントし、コンテナポートは27017に設定してください。このとき、ローカルポートも同じく27017にすると便利です。環境変数にはデータベースのrootアカウントとパスワードを追加する必要があります。パスワードは’MONGO_INITDB_ROOT_PASSWORD’、IDは’MONGO_INITDB_ROOT_USERNAME’という名前のパラメータにそれぞれ定義してください。このように作業すると、すぐにコンテナが実行され、mongoDBが動作します。🚀

mongoDB シェル

mongoDBコンテナに接続してターミナルで作業するには、まずコンテナメニューを開いてターミナルメニューを選択してください。Ubuntuのようにすぐには接続できません。このとき、左上の生成ボタンを押して、再度[コマンドで実行]をクリックし、’mongo’というコマンドを登録してください。すると、その下に’mongo’というボタンが登録されます。これをクリックすると、左下の黒い画面にmongoDBシェル画面が開かれます。ここでコマンドを使って情報を参照したり、様々な作業が可能です。しかし、DockerのターミナルでDBシェルにアクセスするときに認証を行わないとエラー1)が発生するので、接続時にアカウント情報を一緒に入力(’mongo -u ユーザー名 -p パスワード’)してください。🔒

最後にGUI環境でクライアントからmongoDBに接続できるツールをご紹介して終わります。以前はRobo 3Tという無料ソフトウェアとStudio 3Tという有料ソフトウェアがありましたが、最近Studio 3Tに統合されました。このプログラムをインストールすると、最初の1ヶ月間はすべての機能を使用できますが、その後は機能が制限された無料バージョンを使用できます。もちろん、有料ユーザーとして登録してStudio 3Tのすべての機能を利用することもできますが、そうする人はほとんどいないでしょうね。😉

このプログラムをインストールした後、DB Connectを実行すると、データベース情報を入力するウィンドウが表示されます。まず接続を手動で管理するメニューを選択し、[次へ]。接続ウィンドウが表示されたら、接続名を自由に指定してください。サーバーにはmongoDBのIPとPortを入力します。その後、次のタブである認証(Authentication)に進み、認証モードをLegacy(SCRAM-SHA-1)に選択します。そして、ユーザー名とパスワード欄にmongoDBをインストールするときに指定したrootアカウントとパスワードを入力してください。最後に認証データベース欄にはそのユーザーが登録されたデータベース名を入力しますが、それが何かというと、はい、’admin’です。(これを知るためにターミナル接続が必要でした)📜

すべて入力したら、左下の[接続テスト]ボタンを押してみてください。うまく接続できましたか?そうなることを願っています。😉

追加: mongoDBがインストールされているrootに直接接続するには、[ターミナル]-[生成]-[コマンドで実行]を選択し、’bash’と入力して確認ボタンを押すだけです。

1) CRUD作業などで ‘command insert requires authentication‘エラーが発生する可能性があります

情報生成日: 2022-10

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *