Dockerを使ってCouchDBをクラスターとしてデプロイする方法 - TechRepublic

Dockerを使ってCouchDBをクラスターとしてデプロイする方法 - TechRepublic
ノートパソコンで作業するIT男性
画像: DragonImages/Adobe Stock

先日、CouchDBをスタンドアロンのNoSQLデータベースサーバーとしてデプロイする方法を紹介しました。これは小規模なインスタンスでの利用に適しています。今回は、Dockerを使ってCouchDBをクラスターとしてデプロイする便利な方法をご紹介します。この方法は本番環境での使用には適していないかもしれませんが、開発者がテスト環境でCouchDBを操作できるようにするには最適な方法です。

さっそく、展開してみましょう。

参照: 採用キット: バックエンド開発者 (TechRepublic Premium)

必要なもの

これを動作させるには、DockerをサポートするOSを搭載したサーバーが必要です。ここではUbuntu Server 22.04でデモを行いますが、使い慣れたプラットフォームであればどれでも構いません。

Dockerのインストール方法

万が一、まだ Docker がインストールされていない場合は、次の手順に従ってください。

まず、次のコマンドで公式の Docker GPG キーを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

次に、必要なリポジトリを追加します。

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

必要な依存関係を次のようにインストールします。

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y

最後に、Docker エンジンの最新バージョンをインストールします。

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

次のコマンドを使用して、ユーザーを docker グループに追加します。

sudo usermod -aG docker $USER

次の方法でシステムに変更を認識させます。

newgrp docker

CouchDBコンテナのデプロイ方法

3つのCouchDBコンテナをデプロイします。それぞれが固有の外部ポートを使用します。最初のコンテナはポート5984を使用し、以下の設定でデプロイされます。

docker run -itd -p 5984:5984 -p 5986:5986 --name=couchdb0 -e NODENAME='couchdb-0.local.com' --mount 'source=volume-0,target=/opt/couchdb/data' couchdb:2.3.0

2 番目のコンテナは次のようにデプロイされます (ポート 15984 を使用)。

docker run -itd -p 15984:5984 -p 15986:5986 --name=couchdb1 -e  NODENAME='couchdb-1.local.com' --mount 'source=volume-1,target=/opt/couchdb/data' couchdb:2.3.0

最終的なコンテナは、次のようにデプロイされます (ポート 25984 を使用)。

docker run -itd -p 25984:5984 -p 25986:5986 --name=couchdb2 -e NODENAME='couchdb-2.local.com' --mount 'source=volume-2,target=/opt/couchdb/data' couchdb:2.3.0

コマンド docker ps -a | grep couchdb を実行すると、3 つのインスタンスすべてが稼働していることがわかります。

管理者ユーザーの作成方法

各コンテナに管理者を作成する必要があります。各インスタンスの PASSWORD を強力なパスワードに置き換えてください(各インスタンスで同じパスワードにしてください)。コマンドは以下のとおりです。

curl -X PUT http://localhost:5984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:15984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:25984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"''

素晴らしい。続けましょう。

Dockerネットワークの作成方法

現時点では、CouchDBノードは互いを認識していません。これを修正するには、新しいDockerネットワークを作成する必要があります。以下のコマンドを実行します。

docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw

ネットワークを作成したら、コンテナをそのネットワークに接続する必要があります。これは、次のコマンドを使用して実行します。

docker network connect --alias couchdb-0.local.com isolated_nw couchdb0
docker network connect --alias couchdb-1.local.com isolated_nw couchdb1
docker network connect --alias couchdb-2.local.com isolated_nw couchdb2

完璧。

管理コンソールにログインする方法

ウェブブラウザを開き、http://server:5984 にアクセスします。ここで、SERVER は Docker をホストしているサーバーの IP アドレスです。ユーザー名 admin と、先ほど admin ユーザー用に追加したパスワードでログインします。

ログインしたら、左側のナビゲーションにあるレンチ アイコンをクリックし、[クラスターの構成] (図 A ) をクリックします。

図A

CouchDB セットアップ ウィンドウ。

表示されるウィンドウ (図 B ) で、管理者の資格情報を入力し、クラスターにノードを追加する必要があります。

図B

CouchDB クラスター構成ウィンドウ。

最初のノードをクラスターに追加するには、リモートホストに「couchdb-1.local.com」と入力し、ポートは5984のままにします。入力したら、「ノードを追加」をクリックします。2番目のノードについても、リモートホストに「couchdb-2.local.com」と入力して同じ操作を行います。

両方のノードを追加した後、「クラスターの構成」をクリックすると、クラスターが構成されたことを通知するページが表示されます (図 C )。

図C

クラスターは稼働中です。

おめでとうございます。Docker の助けを借りて、最初の CouchDB クラスターをデプロイしました。

TechRepublic Academy の次のリソースを活用して Docker をマスターしましょう。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: