Mac OS здесь работает с Docker Desktop. Я пытаюсь получить официальный Консул Докер , чтобы он сохранял свой магазин KV при каждом запуске. Я запускаю этот образ с помощью следующей команды:
docker run -p 8500:8500 -v /Users/myuser/tmp/consul:/consul/data -d --name=dev-consul -e CONSUL_BIND_INTERFACE=eth0 consul
После ввода этой команды я могу сохранить там пару KV:
curl --request PUT --data "3" http://127.0.0.1:8500/v1/kv/456
И тогда я могу получить его, чтобы убедиться, что он там:
curl http://127.0.0.1:8500/v1/kv/456
true
Но как только я остановлю контейнер:
docker stop <containerId>
А затем перезапустите его:
docker restart <containerId>
И попытка получить его снова (используя тот же curl для GET, что и выше), его нет! Я думаю, что -v /Users/myuser/tmp/consul:/consul/data
, который я указываю в команде docker run
, побудит Consul к сохранить хранилище KV в этом локальном каталоге на моей машине, нет?
Это определенно сохранилось что-то там, хотя:
ls -al ~/tmp/consul/
-rw------- 1 myuser staff 36 Mar 28 20:35 node-id
drwx------ 3 myuser staff 96 Mar 28 20:35 proxy
Что мне нужно сделать, чтобы хранилище KV сохранялось через несколько
контейнер работает?