Dockerize a CouchDB service
Note
如果您不喜欢 sudo ,请参阅Giving non-root access
这是一个使用数据卷在两个 CouchDB 容器之间共享相同数据的示例. 这可以用于热升级、在相同数据上测试不同版本的 CouchDB 等.
Create first database
我们将/var/lib/couchdb
标记为数据卷.
$ COUCH1=$(docker run -d -p 5984 -v /var/lib/couchdb shykes/couchdb:2013-05-03)
Add data to the first database
我们假设您的 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"
Create second database
这一次,我们请求共享访问$COUCH1
的卷.
$ COUCH2=$(docker run -d -p 5984 --volumes-from $COUCH1 shykes/couchdb:2013-05-03)
Browse data on the second database
$ 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"'!'
恭喜,您现在正在运行两个 Couchdb 容器,除了它们的数据之外,它们彼此完全隔离.
docker, example, 包安装, networking, couchdb, 数据量