編集済み 2 数か月前 によって ExtremeHow 編集チーム
ドッカーリナックスモンゴDBデータベースコンテナ化開発仮想化デプロイメントセットアップ設定
翻訳が更新されました 2 数か月前
MongoDBは、柔軟でスケーラブルなデータ管理を可能にする人気のNoSQLデータベースです。一方、Dockerは、ソフトウェアをコンテナで実行できるようにするプラットフォームであり、アプリケーションがどのプラットフォームでも一貫して実行できるようにします。Linux上でDockerを使用してMongoDBをセットアップすることで、MongoDBの柔軟性とDockerの強力なコンテナ化機能を組み合わせることができます。このガイドでは、Linux環境でDockerを使用してMongoDBをセットアップするプロセスを紹介します。成功裏に実施できるように、すべての手順を詳細に説明します。
DockerでMongoDBをセットアップを始める前に、以下のものが揃っていることを確認してください:
DockerがLinuxシステムにインストールされていない場合、これらの手順に従ってインストールできます:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
これらの手順に従うと、DockerはLinuxシステムに正常にインストールされます。以下を使用してインストールされたバージョンを確認できます:
docker --version
Dockerがインストールされたら、次のステップはDocker HubからMongoDBイメージを取得することです。Docker Hubは、様々なソフトウェアのイメージを見つけることができるクラウドベースのライブラリです。MongoDBイメージを取得するには、次のコマンドを使用します:
sudo docker pull mongo
このコマンドは、Docker Hubから最新バージョンのMongoDBをダウンロードします。特定のバージョンを指定するには、「mongo」の後にコロン(:)とバージョン番号を追加します。例えば、バージョン4.4を取得するには、次のようにします:
sudo docker pull mongo:4.4
MongoDBイメージがダウンロードされたら、そのイメージを使用してコンテナを作成し、実行できます。コンテナは様々なアプリケーションを実行できる軽量の仮想マシンのようなものです。次のコマンドを実行して、MongoDBコンテナを実行します:
sudo docker run --name mongodb -d -p 27017:27017 mongo
コマンドの分析:
--name mongodb
: コンテナに「mongodb」という名前を割り当てます。-d
: コンテナを分離モードで実行します。つまり、バックグラウンドで実行されます。-p 27017:27017
: ホストマシンのポート27017をコンテナ内のポート27017にマッピングします。これはMongoDBがリスンするデフォルトのポートです。mongo
: MongoDBイメージを使用することを指定します。MongoDBコンテナが実行されると、すべてが正しくセットアップされていることを確認する必要があります。次を使用してDockerコンテナのステータスを確認します:
sudo docker ps
これにより、実行中のコンテナのリストが表示され、MongoDBコンテナもその中に表示されます。それにはコンテナID、名前、使用されたイメージ、マッピングされたポートの詳細が表示されます。
これをさらに確認するために、MongoDBシェルを使用してMongoDBにアクセスできます。まず、実行中のMongoDBコンテナにログインします:
sudo docker exec -it mongodb bash
コンテナシェル内で、次のように入力してMongoDBシェルを開始します:
mongo
これによりMongoDBシェルプロンプトが表示され、Dockerコンテナ内でMongoDBが実行されていることが確認されます。
デフォルトでは、Dockerコンテナに保存されるデータは永続化されません。つまり、コンテナが削除された場合、その中で作成されたすべてのデータが失われます。データを永続化するには、ホストマシン上のディレクトリをコンテナ内のディレクトリにマッピングする必要があります。
これを行うには、MongoDBコンテナを停止します:
sudo docker stop mongodb
その後、ボリュームマッピングで新しいコンテナを実行します:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo
新しいフラグの説明:
-v /my/own/datadir:/data/db
: コンテナ内部の/data/db
ディレクトリをホストマシン上の/my/own/datadir
にマッピングします。ホストマシン上で、/my/own/datadir
をMongoDBデータを保存したいパスに置き換えてください。このディレクトリにはすべてのMongoDBデータが保存され、コンテナを削除しても永続します。
デフォルト設定でMongoDBを実行すると、本番環境では安全ではない可能性があります。ここにセキュリティを強化するための基本的な手順があります。
まず、MongoDBシェルを起動し、管理者ユーザーを作成します:
mongo
次に、admin
データベースに移動します:
use admin
次のコマンドを実行して管理者ユーザーを作成します。「username」と「password」を希望のユーザー名とパスワードで置き換えてください:
db.createUser({ user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
認証をオンにするには、設定ファイルを編集する必要があります。シェルを終了し、実行中のコンテナを停止します:
exit
sudo docker stop mongodb
「auth」が有効な状態で新しいMongoDBコンテナを開始します:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo --auth
これで、データベースに接続するたびに認証が必要になります。
より高度な設定のために、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
を置き換えます。これにより、レプリカセットやシャーディング、ログ記録などの設定をカスタマイズすることができます。
LinuxでのDocker用MongoDBのセットアップは、Dockerのコンテナ化の利点を備えた柔軟で効率的なデータベース管理を提供します。これにより、環境間での一貫性が確保され、展開プロセスが簡素化されます。これらの手順に従うことで、Docker上でMongoDBを効果的に実行し、セキュリティを確保することができます。
Dockerの分離機能により、コンテナの作成と削除が容易になり、テストや管理が非常に簡単になります。データ永続化や認証といったセキュリティを追加することで、本番環境でMongoDBの強力な機能を安全に活用できるようになります。コンテナ化により、データストレージと設定の管理方法を知っていることで、データベースセットアップのパフォーマンスと信頼性が大幅に向上します。
記事の内容に誤りがある場合, あなたは