Я пытаюсь развернуть образ Vault Docker для работы с образом Consul Docker в качестве хранилища.
У меня есть следующий файл конфигурации Json для контейнера хранилища:
{
"listener": [{
"tcp": {
"address": "0.0.0.0:8200",
"tls_disable" : 1
}
}],
"storage" :{
"consul" : {
"address" :"127.0.0.1:8500"
"path" :"vault/"
}
}
"max_lease_ttl": "10h",
"default_lease_ttl": "10h",
"ui": true,
}
Запуск контейнера консула:
docker run -d -p 8501:8500 -it consul
и чем запустить контейнер хранилища:
docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server
Сразу после того, как контейнер хранилища запущен, он перестает работать, и при запросе журналов я получаю следующую ошибку:
Error detecting api address: Get http://127.0.0.1:8500/v1/agent/self: dial tcp 127.0.0.1:8500: connect: connection refused
Error initializing core: missing API address, please set in configuration or via environment
Есть идеи, почему я получаю эту ошибку, и есть ли у меня проблемы с конфигурацией?
@MattSchuchard Как так?
Вы можете использовать конфигурацию, чтобы легко создать сетевой интерфейс между двумя контейнерами.
@MattSchuchard Есть предложения, как это сделать?


Поскольку вы используете докер, адрес «127.0.0.1», на который вы указываете, будет находиться внутри вашего докера, но консул его не слушает, он слушает локальный хост вашего докер-сервера!
Поэтому я бы порекомендовал вам сделать ссылку (--link consul: consul) при запуске докера хранилища и установить "address": "consul: 8500" в конфигурации.
Или измените «адрес»: «127.0.0.1:8500» на «адрес»: «172.17.0.1:8500», чтобы он мог подключаться к вашим докер-серверам, переадресованным 8500. IP - это то, что установлено на вашем интерфейсе docker0. Не так хорошо, потому что он не официальный и его можно изменить в конфигурации, поэтому я рекомендую ссылку.
172.17.01 - это не полный IP, какой номер отсутствует?
172.17.0.1, это IP-адрес сети докеров по умолчанию, но его можно переопределить, поэтому проверьте.
docker-compose может здесь действительно помочь.