docker-composeTweet概要mongoDBのレプリカセットを構築する際に、docker-composeをつかって、複数のコンテナを立ち上げる方法をまとめます。docker-composeを使うことで、複数のコンテナの設定の記述と、コンテナ起動、停止が楽にできるため、ローカル環境などで軽くmongoDBのレプリカセットを構築したいときは非常に便利です。今回は下記構成で1セットのレプリカセットを作ります。30003ポートを割り当てます。primayノードが死んだときに、次のprimaryノードを決定するために必要なarbiterノードを1コンテナ作り、30004ポートを割り当てます。今回のレプリカセット構築における環境は以下のとおりです。3.4.5docker-compose.ymlを記述するさっそく、4つ分のコンテナの設定をdocker-compose.ymlに記述していきます。ここでは、使用するmongoのdockerイメージはmongo公式のリポジトリのものを使います。レプリカセット用のmongodノード3台、arbiterノード1台分の記述をしていきます。mongo:3.4.5と書くことで、前述した公式mongoリポジトリの3.4.5タグのイメージを取ってきます。記述してホストのポートと各コンテナ内のポートを紐付けます。各コンテナのcommandで、実際にコンテナ内で起動するコマンドを記述します。本稿では、レプリカセットの名前をrs1とします。docker-composeでコンテナを立ち上げるdocker-composeでコンテナを立ち上げる準備ができたので、実際に立ち上げてみます。upコマンドで、実行しているディレクトリにあるdocker-compose.ymlファイルを読み込み、コンテナを立ち上げていきます。mongors003立ち上げ自体はコレだけです。psコマンドで確認してみます。0.0.0.0:30003->27017/tcp指定したとおり、4つのコンテナが正常に上がっているのを確認できました。logsでエラーを確認して対処します。各コンテナに紐付けられているポートも30001〜30004まで紐付けられているので、続いてはレプリカセットの設定を進めていきます。mongoのレプリカセットを初期化する。起動したmongoコンテナに接続してmongoのレプリカセットの設定を行っていきます。ホストのmongoコマンドを叩いて30001ポートに接続します。rs.addArb("mongoa001:27017")これでレプリカセットの初期化と、secondaryノード、arbiterノードの追加ができました。最後にrs.status()を確認すると下記のようにmembersに各ノードが追加されているのを確認できます。config.'月別アーカイブ参加グループプログラミングテクノロジーはてなブログをはじめよう!kaktsさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。