GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

DockerでMongoDBをセットアップする

MongoDBは、JSONのようなドキュメントとスキーマを利用したオープンソースのNoSQLデータベースであり、迅速な反復型開発をサポートします。そのスケールアウトアーキテクチャは、アジャイル手法を使用して迅速に移動するアプリケーション開発者に人気があります。アジャイルコミュニティ内で人気があるため、DockerでMongoDBを使用することは、継続的インテグレーションと開発のための優れたアプローチです。 (CI / CD)ワークフロー。

始める前に

このガイドの例を完了するには、最初にDockerがインストールされたLinodeをセットアップして保護します。これは、Docker Marketplaceアプリを利用するか、手動でインストールすることで実現できます。両方のアプローチの手順を以下に示します。

このガイドは、コマンドラインインターフェースに慣れていることを前提としています。 (CLI)Unixライクなシステムで、それを使用してプログラムを操作します。

Dockerを使用してLinodeをセットアップする

DockerMarketplaceアプリ

Docker Marketplaceアプリを使用して、安全で更新されたLinodeをすばやくセットアップできます。手順については、MarketplaceアプリでDockerをデプロイする方法に関するガイドを参照してください。このガイドでは、Dockerオプションを使用してDockerMarketplaceアプリをデプロイすることをお勧めします。

  • Linode用に作成される限定的なsudoユーザー
  • 制限付きsudoユーザーのパスワード
  • Linodeへのアクセスに使用される制限付きsudoユーザーSSH公開鍵
  • SSH経由のルートアクセスを無効にしますか? (はい)

手動インストール

  1. スタートガイドをよく理解し、Linodeを更新するための手順を完了してください。

  2. サーバーの保護のセクションを完了して、標準のユーザーアカウントを作成し、SSHアクセスを強化し、不要なネットワークサービスを削除します。

  3. UbuntuとDebianにDockerをインストールして使用する方法に関するガイドの手順に従って、LinodeにDockerをインストールします。

Dockerのインストールを確認する

DockerがLinodeにインストールされていることを確認します:

docker --version

次のような出力が期待できます:

Docker version 20.10.8, build 3967b7d

このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドには、接頭辞としてsudoが付けられます 。 sudoに慣れていない場合 コマンドについては、ユーザーとグループのガイドにアクセスしてください。

すべての構成ファイルは、昇格された特権で編集する必要があります。 sudoを含めることを忘れないでください テキストエディタを実行する前に。

MongoDBDockerコンテナをインストールする方法

Dockerは、MongoDBイメージを非常に簡単に作成できるようにします。これは、MongoDBイメージがDockerHubで公式に維持されているバージョンを保持しているためです。インストールするには:

  1. Docker HubからMongoDBイメージをダウンロードしてインストールします:

    sudo docker pull mongo
    

    画像のダウンロード時の出力は、次のようになります。

    Using default tag: latest
    latest: Pulling from library/mongo
    16ec32c2132b: Pull complete
    6335cf672677: Pull complete
    cbc70ccc8ebe: Pull complete
    0d1a3c6bd417: Pull complete
    960f3b9b27d3: Pull complete
    aff995a136b4: Pull complete
    4249be7550a8: Pull complete
    cc105ff5aa3c: Pull complete
    82819807d07a: Pull complete
    81447d2c233f: Pull complete
    Digest: sha256:54d24682d00278f64bf21ff62b7ee62b59dae50f65139831a884b345922b0f8a
    Status: Downloaded newer image for mongo:latest
    docker.io/library/mongo:latest
    注 このコマンドは、デフォルトで最新バージョンをプルします(出力の最初の行に示されているように)。特定のバージョンをプルするには、そのバージョンのタグをコマンドに追加します。たとえば、MongoDB 4.4.6をインストールするには、docker pull mongo:4.4.6と入力します。 。
  2. イメージがインストールされていることを確認します:

    sudo docker images
    

    出力は次のようになります。

    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    mongo        latest    07630e791de3   2 weeks ago   449MB
  3. mongoを使用してコンテナを作成します システム上で引き続きインタラクティブになるように、デタッチモードのイメージ:

    sudo docker run --name mongo_example -d mongo
    
  4. コンテナが実行されていることを確認します:

    sudo docker ps
    

    出力は次のようになります。

    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS       NAMES
    1f88d00b9e78   mongo     "docker-entrypoint.s…"   4 seconds ago   Up 4 seconds   27017/tcp   mongo_example

MongoDBは現在Dockerコンテナとして実行されています。

コンテナでMongoDBにログインする方法

  1. コンテナ内でbashプロンプトを取得するには、次のように入力します。

    sudo docker exec -it mongo_example bash
    
  2. コンテナのコマンドプロンプトが表示されたら、mongoshと入力します シェル:

    mongosh
    

mongoshから シェルを使用すると、データベースを使用してクエリと操作を直接テストできます。

注 レガシーのmongo シェルはMongoDBv5.0で非推奨になりましたが、mongoshの代わりに引き続きアクセスできます。 。

DockerコンテナーでMongoDBを構成する方法

MongoDBの構成の詳細については、MongoDBのマニュアルを参照してください。ただし、mongod (MongoDBのプライマリデーモン)フラグは通常、MongoDBを構成するために設定され、docker run コマンドは、mongodを渡すように設計されています フラグ。

たとえば、スクリプトエンジンをオフにするには、次のようにコマンドの最後にフラグを追加します。

    sudo docker run --name mongo_example2 -d mongo --noscripting

別の例として、スクリプトエンジンをオフにしてIPv6をオンにするには、次のように入力します。

    sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6

DockerコンテナからMongoDBデータを保存する方法

MongoDBはDockerコンテナで実行されているため、終了時にデータは保持されません(コンテナ自体の/ data / dbディレクトリにデータが保存されるため)。 MongoDBデータを永続化する必要がある場合は、Dockerボリュームを作成してマウントするか、ホストシステムからディレクトリをマウントする必要があります。

DockerボリュームをMongoDBコンテナーに追加する

Dockerに精通している場合は、コンテナーが使用するボリュームの作成と追加は簡単です。

  1. 次のように入力して、データが存在するDockerボリュームを作成します。

    sudo docker volume create mongo_volume
    
  2. 次に、docker runを作成します ボリュームをコンテナーに接続し、それを/data/dbにマップするコマンド 次のように入力してコンテナディレクトリ:

    sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo
    

MongoDBDockerコンテナへのホストシステムディレクトリのマウント

データを永続化してDockerの外部のデータにアクセスする場合は、ホストシステムのディレクトリを使用できます。

ホストシステムディレクトリをマウントするには:

  1. 次のように入力して、システムのルートレベルにディレクトリを作成します(使用するディレクトリがない場合)。

    sudo mkdir -p /mongo_data_directory
    
  2. 次に、docker runを実行します ディレクトリをマウントして/data/dbにマップするコマンド 次のように入力します:

    sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo
    

さらに読む

DockerでMongoDBを使用する方法を学ぶことは、CI/CDワークフローと迅速な反復型開発に不可欠です。 Docker HubでDockerのMongoDB情報の一部を継続することは、この記事の優れたコンパニオンです。

mongodの詳細については docker runで渡されるオプション 、mongodを確認してください MongoDBマニュアルのMongoDBパッケージコンポーネントセクション。

また、MongoDB Enterpriseへのアップグレードを計画している場合は、mongodの手順について、MongoDBマニュアルのDockerを使用したMongoDBEnterpriseのインストールを参照してください。 。

詳細情報

このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。

  • DockerHub上のMongoDB

Docker
  1. Dockerロギングの完全な初心者向けガイド

  2. セルフホスティングRocket.ChatとDockerの完全ガイド

  3. Dockerデーモンへのリモートアクセスを設定する方法

  1. Docker

  2. Dockerの概要

  3. レプリカ セットの MongoDB を停止する

  1. プライベートDockerレジストリを設定して使用する方法

  2. MySQL Dockerコンテナチュートリアル:セットアップと構成の方法

  3. Dockerを使用してMongoDBをデプロイおよび管理する方法