CouchDB サービスの Docker 化¶
2つの CouchDB コンテナ間で同じデータを共有するため、ここでは例としてデータ・ボリュームを使います。これはホット・アップグレード、同じデータを使った異なった CouchDB バージョンのテストなどに便利です。
1つめのデータベースを作成¶
/var/lib/couchdb
はデータ・ボリュームとして作成しているのを注意してください。
$ COUCH1=$(docker run -d -p 5984 -v /var/lib/couchdb shykes/couchdb:2013-05-03)
1つめのデータベースにデータを追加¶
Docker ホストは到達可能な localhost
を想定しています。もしそうでなければ、 localhost
を Docker ホストのパブリック IP アドレスに置き換えてください。
$ HOST=localhost
$ URL="http://$HOST:$(docker port $COUCH1 5984 | grep -o '[1-9][0-9]*$')/_utils/"
$ echo "Navigate to $URL in your browser, and use the couch interface to add data"
2つめのデータベースを作成¶
今回は $COUCH1
のボリュームに対する共有アクセスをリクエストします。
$ COUCH2=$(docker run -d -p 5984 --volumes-from $COUCH1 shykes/couchdb:2013-05-03)
2つめのデータベースのデータを表示する¶
$ HOST=localhost
$ URL="http://$HOST:$(docker port $COUCH2 5984 | grep -o '[1-9][0-9]*$')/_utils/"
$ echo "Navigate to $URL in your browser. You should see the same data as in the first database"'!'
おめでとうございます。2つの Couchdb コンテナを実行し、お互いのデータを完全に隔離しました。
参考
- Dockerizing a CouchDB service
- https://docs.docker.com/engine/examples/couchdb_data_volumes/