DockerコンテナでEtcd3を動かす
Page content
ETCD 3.3.8をローカルのDocker コンテナとして動かす。 Etcdは二つのポートを使っている。 一つは2379番ポート、 もう一つは 2380番ポート。 2379はクライアント通信のため, 2380はEtcdサーバー間の通信のためである。
rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
docker rmi gcr.io/etcd-development/etcd:v3.3.8 || true && \
docker run \
-p 2379:2379 \
-p 2380:2380 \
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
--name etcd-gcr-v3.3.8 \
gcr.io/etcd-development/etcd:v3.3.8 \
/usr/local/bin/etcd \
--name s1 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster s1=http://0.0.0.0:2380 \
--initial-cluster-token tkn \
--initial-cluster-state new
docker exec etcd-gcr-v3.3.8 /bin/sh -c "/usr/local/bin/etcd --version"
docker exec etcd-gcr-v3.3.8 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl version"
docker exec etcd-gcr-v3.3.8 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl endpoint health"
docker exec etcd-gcr-v3.3.8 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl put foo bar"
docker exec etcd-gcr-v3.3.8 /bin/sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl get foo"
Etcdのversionを調べる。
$ curl -L http://127.0.0.1:2379/version
{"etcdserver":"3.3.8","etcdcluster":"3.3.0"}
Keyを登録する。
$ curl -X PUT http://127.0.0.1:2379/v2/keys/message -d value="Hello"
{"action":"set","node":{"key":"/message","value":"Hello","modifiedIndex":4,"createdIndex":4}}
Keyを取得する。
$ curl http://127.0.0.1:2379/v2/keys/message
{"action":"get","node":{"key":"/message","value":"Hello","modifiedIndex":5,"createdIndex":5}}