docker-composeビルドmongodbコンテナインスタンス

    docker-composeは、一度に複数のdockerインスタンスを開くことができます。これは、Dockerfileよりもdockerコンテナーの作成に非常に便利です。docker-composeの主なポイントは、ymlファイルの構成です。ymlファイルの設定では、インデントを厳密に制御することに注意を払う必要があります。

    docker-composeコマンドはdockerインストールではインストールされないことに注意してください。追加のインストールが必要です。インストールされていない場合は、対応するシステムバージョンをgithubからダウンロードできます:https : //github.com/docker/compose /Linuxシステムの場合、ダウンロードして解凍した後、実行可能コマンドdocker-composeを/ usr / binディレクトリーに入れ、実行可能属性を指定します:chmod + x / usr / bin / docker-compose。

    mongodbコンテナの構築は実際には非常に簡単です。つまり、イメージのソースを指定する必要があります。認証を有効にする必要がある場合は、環境変数MONGO_INITDB_ROOT_USERNAMEおよびMONGO_INITDB_ROOT_PASSWORDを構成する必要があります。一般に、イメージ内のディスクを外部にマッピングすることで、コンテナーが存在しても、コンテナーに保持されているデータが次回起動時に失われないようにします。

    mongodbのdocker-compose構成を以下に示します。

    docker-compose-mongodb.yml

version: '3'
services:
  mongodb:
    image: mongo:latest
    restart: always
    volumes:
      - /data/mongo/db:/data/db
      - /data/mongo/log:/var/log/mongodb
    ports:
      - 27018:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin

    ここで指定されたポートマッピングは、コンテナー内の27017を27018にマップします。mongodbはローカルにインストールされているため、ポート占有の競合を回避するために、27018が使用されます。 

    コンテナを起動するには、フォルダ/ data / mongo / dbおよび/ data / mongo / logを準備する必要があります。

    構成ファイルが配置されているディレクトリで、コマンドを実行してコンテナーを起動できます。

    #docker-compose -f docker-compose-mongodb.yml up -d

    mongo:latestがローカルミラーリストに存在しない場合、リモートウェアハウスから取得されるため、しばらく時間がかかります。

    このような起動では、デフォルトで管理ユーザーと管理パスワードを初期認証ユーザーとパスワードとして使用します。通常は使用中のユーザーを作成しますが、ユーザーはuse adminの下でadminデータベースに切り替えてから、db.auth( "admin"、 "admin")を認証する必要があることに注意して、1を返し、認証が成功したことを示します。 。次に、データベースで使用するユーザーを作成する必要があります。このとき、mecなどの別のデータベースに切り替える必要もあります。switchコマンドはuse mecです。このとき、hadoopユーザーを作成し、db.createUserコマンドを使用してパスワードを指定します({user: 'hadoop'、pwd: '123456'、roles:[{role: 'dbOwner'、db: 'mec'}]})。

    上記の新しいユーザーを作成する場合、ユーザーが管理するデータベースへの切り替えに注意する必要があります。そうしないと、使用したときにエラーが報告され、デフォルトでは切り替えられません。作成したユーザーは管理対象の管理データベースです。

 

529件の元の記事を公開 287 件を賞賛 144万回の再生

おすすめ

転載: blog.csdn.net/feinifi/article/details/105098829