ホームページ >データベース >モンゴDB >Docker を使用して MongoDB をデプロイおよび管理するにはどうすればよいですか?

Docker を使用して MongoDB をデプロイおよび管理するにはどうすればよいですか?

王林
王林転載
2023-09-15 08:17:021281ブラウズ

###############導入###

MongoDB は、非構造化データを保存および管理するために設計された人気のオープン ソース NoSQL データベースです。最新のアプリケーションに高いパフォーマンス、拡張性、柔軟性を提供します。 如何使用 Docker 部署和管理 MongoDB?

一方、Docker は、開発者がアプリケーションと依存関係を、さまざまな環境で一貫して実行されるポータブル コンテナーにパッケージ化できるようにするコンテナー化プラットフォームです。アプリケーションに軽量で独立したランタイム環境を提供することで、ソフトウェア配信プロセスを簡素化します。

環境のセットアップ

Docker をローカル マシンにインストールします

MongoDB をセットアップする前に、ローカル コンピューターに Docker をインストールすることが非常に重要です。 Docker は、アプリケーションをポータブルな方法でパッケージ化して配布できるコンテナ化プラットフォームです。コンテナーを構築、実行、管理するための使いやすいインターフェイスを提供します。

Docker をインストールするには、まず Docker の公式 Web サイトにアクセスし、オペレーティング システムに適したバージョンをダウンロードします。ダウンロードしたら、インストーラーのインストール手順に従ってください。

Docker Hub から MongoDB イメージをプルします

次のステップは、Docker Hub から MongoDB イメージを取得することです。これは、ターミナル ウィンドウで簡単なコマンドを使用して実行できる簡単なプロセスです。

これを行うには、ターミナルで「docker pull mongo」を実行します。これにより、MongoDB の最新の安定バージョンが Docker Hub からローカル イメージ キャッシュにダウンロードされます。

MongoDB のコンテナを作成する

MongoDB イメージをローカルにダウンロードしたので、そのイメージを使用して、ポート転送やボリューム マッピングなどの特定の構成を持つコンテナーを作成できます。コンテナーを作成するコマンドの例を次に示します -

リーリー

このコマンドは、「mongodb」という名前の新しいコンテナーを作成します。 「-p」フラグは、ホスト ポート 27017 をコンテナ ポート 27017 にマップし、コンテナの外部から MongoDB にアクセスできるようにします。

「-v」フラグは、コンテナ内の「/data/db」ディレクトリにマップされるボリュームをホストの「/data」ディレクトリに作成します。これにより、コンテナが再起動または破棄された場合でも、MongoDB データが保持されるようになります。

"-d" フラグは、コンテナーをデタッチ モードで実行するように Docker に指示します。つまり、コンテナーはバックグラウンドで実行され、ターミナル ウィンドウに接続されません。このコマンドを実行した後、「docker ps」を使用してコンテナーが実行されているかどうかを確認できます。

MongoDB コンテナの構成

コンテナ構成の環境変数を設定する

MongoDB コンテナーを構成する最初のステップは、さまざまな構成オプションを定義する環境変数を設定することです。これらの環境変数を使用すると、root ユーザーのユーザー名とパスワード、データベース名、ストレージ エンジンなどの設定を指定できます。

データ永続性のためにボリュームをマウントする

デフォルトでは、Docker コンテナーが削除または再作成されると、Docker コンテナーに保存されているすべてのデータが失われます。コンテナーが削除または再作成された場合でも、MongoDB データが確実に保持されるようにするために、ホスト マシンから MongoDB コンテナーにボリュームをマウントできます。

これを行うには、 -v オプションを使用してコンテナーを起動するときにボリューム マウント ポイントを指定し、その後にローカル マシン上のパスと Docker イメージ上の別のパス ( /data/db ) を指定する必要があります。これにより、mongodb イメージ ファイル システム内の /data/db フォルダーにファイルが作成されますが、実際にはローカル マシンに保存されます。

MongoDB へのコンテナ外からのアクセスに使用するポートを公開します

デフォルトでは、コンテナによって公開されるポートには、コンテナ自身のネットワーク名前空間内からのみアクセスできます。 MongoDB インスタンスへの外部アクセスを許可するには、ホスト ポート番号をマッピングして、MongoDB インスタンスを Docker ネットワークの外部に公開する必要があります。

これを行うには、mongodb インスタンスを開始するときに、docker run コマンドに -p オプションを追加し、その後にローカル コンピューターのポート番号とターゲット コンピューターによって公開されるポート (27017:27017) を追加します。これにより、MongoClient を使用して、ローカルホストおよびポート番号 27017 のコンテナ内で実行されている mongodb インスタンスに接続できるようになります。

Docker Compose を使用して MongoDB を管理する

Docker Compose の概要とその利点

Docker Compose は、開発者がマルチコンテナー アプリケーションを定義および管理できるようにする Docker によって提供されるツールです。これにより、開発者はアプリケーションに必要なすべてのサービスを docker-compose.yml という単一のファイルで宣言できるため、複数のコンテナを管理するプロセスが簡素化されます。

このファイルには、アプリケーション内の個々のコンテナに関する情報と、コンテナがどのように接続され、一緒に実行されるかについての詳細が含まれています。 Docker Compose を使用する主な利点は、開発者が 1 つのコマンドで複雑なアプリケーション環境を簡単に起動できることです。

複数のコンテナを管理するために docker-compose.yml ファイルを作成します

Docker Compose を使用してマルチコンテナー アプリケーションを作成するには、docker-compose.yml ファイルで各コンテナーとその構成パラメーターを定義する必要があります。このファイルは、YAML 構文を使用して、各コンテナーの名前、必要な環境変数、ネットワーク設定、コンテナーにマウントする必要があるボリューム、およびコンテナー間の依存関係を指定します。たとえば、Docker Compose を使用して Docker 環境で MongoDB とアプリケーション サーバーを実行する場合は、docker-compose.yml に 2 つの個別のサービス定義を作成する必要があります。1 つは MongoDB 用、もう 1 つはアプリケーション サーバー用です。

Docker を使用した MongoDB のデプロイと管理のベスト プラクティス

認証および認可メカニズムを設定してセキュリティを確保する

Docker を使用して MongoDB をデプロイする場合、データベースに保存されているデータのセキュリティを確保することが非常に重要です。これを実現する 1 つの方法は、認証および認可メカニズムをセットアップすることです。

デフォルトでは、MongoDB は認証を必要としません。つまり、サーバーにアクセスできる人は誰でも、データベースに保存されているすべてのデータにアクセスできます。認証を設定するには、データベースにアクセスする前にユーザー名とパスワードを指定する必要があるユーザー アカウントを作成します。

Prometheus や Grafana などのツールを使用してパフォーマンス指標を監視する

パフォーマンス メトリックの監視は、実稼働環境にアプリケーションをデプロイする際の重要な実践です。 Docker を使用して MongoDB インスタンスをデプロイする場合、CPU 使用率、メモリ使用率、ディスク I/O 使用率、ネットワーク トラフィックなどのパフォーマンス メトリックの監視に役立つツールがいくつかあります。

ログを分析して問題を特定し、パフォーマンスを最適化する

Docker を使用して MongoDB を管理する場合、ログの分析も重要な実践の 1 つです。ログはデータベースの動作に関する洞察を提供し、パフォーマンスに影響を与える可能性のある問題を特定するのに役立ちます。潜在的な問題を診断するために十分なデータを収集するには、MongoDB および Docker コンテナーのログ設定を構成することが重要です。

データを定期的にバックアップする

実稼働レベルのシステムを運用する場合、データのバックアップは重要です。 Docker を使用してデプロイされた MongoDB の場合、ハードウェア障害やその他の問題が発生した場合にデータが失われないように、定期的にバックアップを実行する必要があります。

バックアップは、運用環境から離れた安全な場所に保存する必要があります。 Docker コンテナ内で実行されている MongoDB インスタンスをバックアップする 1 つの方法は、MongoDB が提供する mongodump コマンドライン ツールを使用することです。

###結論は### Docker を使用して MongoDB をデプロイおよび管理すると、アプリケーションの効率とスケーラビリティが大幅に向上します。コンテナ化、ネットワーク管理、Docker Compose や Swarm Mode などのオーケストレーション ツールなど、Docker の機能を活用することで、MongoDB デプロイメントのための信頼性が高く柔軟なインフラストラクチャを簡単に構築できます。この記事の重要なポイントには、MongoDB を Docker にデプロイするための正しいイメージとコンテナー構成を使用して適切な環境をセットアップすることが含まれます。

データ永続性のためにボリュームを構成し、外部アクセス用にポートを公開し、docker-compose.yml ファイルを使用して複数のコンテナを効果的に管理することも重要です。 Swarm モードを使用したスケーリングは、大量のデータを扱うときに高可用性と柔軟性を確保する優れた方法でもあります。

以上がDocker を使用して MongoDB をデプロイおよび管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。