ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

LinuxでのDocker用MongoDBのセットアップ

編集済み 2 数か月前 によって ExtremeHow 編集チーム

ドッカーリナックスモンゴDBデータベースコンテナ化開発仮想化デプロイメントセットアップ設定

LinuxでのDocker用MongoDBのセットアップ

翻訳が更新されました 2 数か月前

MongoDBは、柔軟でスケーラブルなデータ管理を可能にする人気のNoSQLデータベースです。一方、Dockerは、ソフトウェアをコンテナで実行できるようにするプラットフォームであり、アプリケーションがどのプラットフォームでも一貫して実行できるようにします。Linux上でDockerを使用してMongoDBをセットアップすることで、MongoDBの柔軟性とDockerの強力なコンテナ化機能を組み合わせることができます。このガイドでは、Linux環境でDockerを使用してMongoDBをセットアップするプロセスを紹介します。成功裏に実施できるように、すべての手順を詳細に説明します。

1. 前提条件

DockerでMongoDBをセットアップを始める前に、以下のものが揃っていることを確認してください:

1.1 Dockerのインストール

DockerがLinuxシステムにインストールされていない場合、これらの手順に従ってインストールできます:

  1. 最初に、パッケージデータベースを更新します:
    sudo apt update
  2. 次に、必要なパッケージをインストールします:
    sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  3. 次に、Dockerの公式GPGキーを追加します:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. 静的Dockerリポジトリを設定します:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 再度、パッケージデータベースを更新します:
    sudo apt update
  6. 最後にDockerをインストールします:
    sudo apt install docker-ce docker-ce-cli containerd.io

これらの手順に従うと、DockerはLinuxシステムに正常にインストールされます。以下を使用してインストールされたバージョンを確認できます:

docker --version

2. MongoDB Dockerイメージの取得

Dockerがインストールされたら、次のステップはDocker HubからMongoDBイメージを取得することです。Docker Hubは、様々なソフトウェアのイメージを見つけることができるクラウドベースのライブラリです。MongoDBイメージを取得するには、次のコマンドを使用します:

sudo docker pull mongo

このコマンドは、Docker Hubから最新バージョンのMongoDBをダウンロードします。特定のバージョンを指定するには、「mongo」の後にコロン(:)とバージョン番号を追加します。例えば、バージョン4.4を取得するには、次のようにします:

sudo docker pull mongo:4.4

3. MongoDBコンテナの実行

MongoDBイメージがダウンロードされたら、そのイメージを使用してコンテナを作成し、実行できます。コンテナは様々なアプリケーションを実行できる軽量の仮想マシンのようなものです。次のコマンドを実行して、MongoDBコンテナを実行します:

sudo docker run --name mongodb -d -p 27017:27017 mongo

コマンドの分析:

4. MongoDBセットアップの確認

MongoDBコンテナが実行されると、すべてが正しくセットアップされていることを確認する必要があります。次を使用してDockerコンテナのステータスを確認します:

sudo docker ps

これにより、実行中のコンテナのリストが表示され、MongoDBコンテナもその中に表示されます。それにはコンテナID、名前、使用されたイメージ、マッピングされたポートの詳細が表示されます。

これをさらに確認するために、MongoDBシェルを使用してMongoDBにアクセスできます。まず、実行中のMongoDBコンテナにログインします:

sudo docker exec -it mongodb bash

コンテナシェル内で、次のように入力してMongoDBシェルを開始します:

mongo

これによりMongoDBシェルプロンプトが表示され、Dockerコンテナ内でMongoDBが実行されていることが確認されます。

5. MongoDBデータの維持

デフォルトでは、Dockerコンテナに保存されるデータは永続化されません。つまり、コンテナが削除された場合、その中で作成されたすべてのデータが失われます。データを永続化するには、ホストマシン上のディレクトリをコンテナ内のディレクトリにマッピングする必要があります。

これを行うには、MongoDBコンテナを停止します:

sudo docker stop mongodb

その後、ボリュームマッピングで新しいコンテナを実行します:

sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo

新しいフラグの説明:

ホストマシン上で、/my/own/datadirをMongoDBデータを保存したいパスに置き換えてください。このディレクトリにはすべてのMongoDBデータが保存され、コンテナを削除しても永続します。

6. MongoDBインスタンスのセキュリティ確保

デフォルト設定でMongoDBを実行すると、本番環境では安全ではない可能性があります。ここにセキュリティを強化するための基本的な手順があります。

6.1 管理ユーザーの作成

まず、MongoDBシェルを起動し、管理者ユーザーを作成します:

mongo

次に、adminデータベースに移動します:

use admin

次のコマンドを実行して管理者ユーザーを作成します。「username」と「password」を希望のユーザー名とパスワードで置き換えてください:

db.createUser({ user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

6.2 認証の有効化

認証をオンにするには、設定ファイルを編集する必要があります。シェルを終了し、実行中のコンテナを停止します:

exit
sudo docker stop mongodb

「auth」が有効な状態で新しいMongoDBコンテナを開始します:

sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo --auth

これで、データベースに接続するたびに認証が必要になります。

7. 高度な設定

より高度な設定のために、MongoDBコンテナを起動する際に設定ファイルを提供することができます。ホストマシンで構成ファイルを作成し、次のコマンドを使用してコンテナに渡します:

sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db -v /my/own/config:/etc/mongo mongo --config /etc/mongo/mongod.conf

設定ファイルが置かれているディレクトリ/my/own/configを置き換えます。これにより、レプリカセットやシャーディング、ログ記録などの設定をカスタマイズすることができます。

8. 結論

LinuxでのDocker用MongoDBのセットアップは、Dockerのコンテナ化の利点を備えた柔軟で効率的なデータベース管理を提供します。これにより、環境間での一貫性が確保され、展開プロセスが簡素化されます。これらの手順に従うことで、Docker上でMongoDBを効果的に実行し、セキュリティを確保することができます。

Dockerの分離機能により、コンテナの作成と削除が容易になり、テストや管理が非常に簡単になります。データ永続化や認証といったセキュリティを追加することで、本番環境でMongoDBの強力な機能を安全に活用できるようになります。コンテナ化により、データストレージと設定の管理方法を知っていることで、データベースセットアップのパフォーマンスと信頼性が大幅に向上します。

記事の内容に誤りがある場合, あなたは


コメント