はじめに
MongoDBは、実用的なNoSQLデータベースソリューションです。固定データ構造を使用しないため、スケーラブルで動的なワークロードの管理に最適です。 MongoDBは、Dockerコンテナなどの分散環境に最適です。
Dockerと公式のMongoDBコンテナーイメージを使用すると、データベースのデプロイプロセスを大幅に短縮および簡素化できます。
このチュートリアルでは、DockerコンテナにMongoDBインスタンスをデプロイする方法を紹介します。 。
前提条件
- sudoを持つユーザー 特権
- コマンドラインへのアクセス
- 実行中のDockerインスタンス
Docker用のMongoDBイメージをダウンロード
以下のステップバイステップの手順に従って、Docker用の最新の公式MongoDBイメージをダウンロードします。
- Dockerサービスがアクティブで実行されている必要があります。ターミナルで次のコマンドを入力すると、現在のステータスをすばやく確認できます。
sudo service docker status
この例では、Dockerサービスがアクティブで実行されています。
- MongoDBデータベースの最新の公式Dockerイメージのダウンロードに進みます:
sudo docker pull mongo
この画像は、システムが最新の
を使用したことを示しています デフォルトでタグを付けます。
MongoDBの特定のバージョンをダウンロードするには、versionタグが追加された同じコマンドを使用します。例:
sudo docker pull mongo:4.2.2
- 次のコマンドを使用して、Dockerリポジトリ内のイメージを一覧表示します。
sudo docker images
インターフェイスは、MongoDBイメージが利用可能になったことを確認します。
MongoDBコンテナをデプロイする
デフォルトでは、MongoDBはデータを / data / dbに保存します Dockerコンテナ内のディレクトリ。これを修正するには、基盤となるホストシステムからMongoDBデータベースを実行しているコンテナーにディレクトリをマウントします。このように、データはホストシステムに保存され、コンテナインスタンスに障害が発生しても消去されません。
- / mongodataを作成します ホストシステムのディレクトリ:
sudo mkdir -p /mongodata
-
run
でDockerコンテナを起動します mongoイメージを使用したコマンド。 / data / db コンテナ内のディレクトリは/mongodataとしてマウントされます ホスト上。さらに、このコマンドはコンテナの名前を mongodbに変更します :
sudo docker run -it -v mongodata:/data/db --name mongodb -d mongo
-それコード>
–Dockerコンテナにインタラクティブシェルを提供します。
-v
–このオプションを使用して、/ mongodataを添付します / data / dbへのホストボリューム コンテナの容量。
-d
–バックグラウンドプロセスとしてコンテナを開始します。
-名前コード>
–コンテナの名前。
- MongoDBサーバーがコンテナーで実行を開始したら、次のように入力してステータスを確認します。
sudo docker ps
デフォルトのポート番号は27017、です。 出力に見られるように。
- オプションで、MongoDBポートを明示的に指定できます:
sudo docker run -it -v mongodata:/data/db -p 27017:27017 --name mongodb -d mongo
- 変更を加えた後は、常にDockerログをチェックして一連のイベントを確認してください。
sudo docker logs mongodb
ログは豊富な有用な情報を提供します。
インタラクティブDockerターミナル(Bashシェル)を起動してMongoDBデータベースを管理する
- コンテナは現在デタッチモードで実行されています 。代わりに、インタラクティブ端末を使用してコンテナに接続します。
sudo docker exec -it mongodb bash
-
mongo
と入力して、MongoDBシェルを起動します インタラクティブ端末で。
MongoDBシェルが起動し、プロンプトがコマンドを受け入れる準備が整います。
-
mongo
と入力するだけでなく 、次のように入力して、特定のホストとポートを追加で定義できます。
mongo -host localhost -port 27017
MongoDBシェルを使用すると、データベースを作成したり、コレクションを追加したり、個々のドキュメントを管理したりできるようになりました。
MongoDBとインタラクティブシェルを終了する方法
exit
と入力します MongoDBシェルを終了してから、終了
します。 もう一度インタラクティブシェルを終了します。
別の方法として、 quit()
と入力することもできます またはCtrl-Cを使用します シェルを終了します。
MongoDBデータベースの停止と再起動
ドッカーストップ
コマンドは、コンテナインスタンスの実行を停止する短くて明確なコマンドです:
sudo docker stop mongodb
次のように入力して、実行中のDockerコンテナのリストを調べます。
sudo docker ps
コンテナは、 docker start
を使用して開始されます コマンド:
sudo docker start mongodb
実行中のコンテナーのリストにより、MongoDBデータベースが再度開始されたことが確認されます。
sudo docker ps