CouchDB via Docker
Im Folgenden wird beschrieben, wie CouchDB (speziell die neue Version 2.0) unter Verwendung eines Docker-Containers betrieben werden kann. Die Installation bezieht sich auf »OpenSUSE Tumbleweed«, sollte aber in ähnlicher Weise auch unter anderen Betriebssystemen funktionieren. Der Artikel »The CouchDB 2.0 Release Testing Plan« behandelt weitere Details.
Installation von Docker
zypper in docker
Proxy-Servereinträge für Docker
mkdir -p /etc/systemd/system/docker.service.d
echo '[Service]' > /etc/systemd/system/docker.service.d/http-proxy.conf
echo 'Environment="HTTP_PROXY=http://webproxy.berlin.ptb.de:8080"' >> \
/etc/systemd/system/docker.service.d/http-proxy.conf
echo 'Environment="NO_PROXY=localhost,127.0.0.1,.berlin.ptb.de"' >> \
/etc/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
Docker aktivieren
systemctl enable docker.service
systemctl start docker.service
CouchDB-Docker-Container starten
docker run -it -p 5984:5984 klaemo/couchdb:2.0-rc2
Alternativ kann auch
docker run -it -p 5984:5984 klaemo/couchdb:2.0-single
oder
docker run -it -p 5984:5984 klaemo/couchdb:2.0-dev
# Vorkonfiguriertes Dreier-Cluster
gewählt werden. Näheres dazu siehe: https://github.com/klaemo/docker-couchdb
CouchDB-Docker-Container per systemd starten/stoppen
Dazu ist eine Datei mit Namen /usr/lib/systemd/system/couchdb_docker.service
zu erstellen. Ihr Inhalt ist
hier
zu finden. Desweiteren ist das Verzeichnis, welches die CouchDB-Daten aufnehmen
soll, im Host-Dateisystem anzulegen:
mkdir /var/lib/couchdb_docker
chmod o+rw /var/lib/couchdb_docker
Anmerkung: Der Name couchdb_docker.service
wurde gewählt, um eine
Unterscheidung zu der Datei couchdb.service
die vom Software-Paket des
Betriebssystems installiert wird. Später, wenn möglicherweise nur noch Docker
verwendet wird, könnte zu dem besseren Namen couchdb.service
zurückgegangen
werden. Die von CouchDB innerhalb des Docker-Containers geschriebenen
Datenbank-Dateien werden außerhalb im Verzeichnis /var/lib/couchdb_docker
sichtbar. Sie überleben somit das Entfernen des Docker-Containers.
Danach kann CouchDB per
systemctl enable couchdb_docker.service
aktiviert und per
systemctl start couchdb_docker.service
gestartet werden. Mit
docker logs -f couchdb
können die log-Ausgaben des CouchDB-Containers kontinuierlich angezeigt werden
(siehe auch docker logs --help
).
- TODO: .rpm/.deb machen mit
couchdb_docker.service
. Zuerst »disable« Standardpaket; später ggf. Deinstallation. - TODO: »chmod o+rw ...« ???