Конфигурация контейнера Vault Docker с контейнером Consul Docker

Я пытаюсь развернуть образ 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

Есть идеи, почему я получаю эту ошибку, и есть ли у меня проблемы с конфигурацией?

docker-compose может здесь действительно помочь.

Matt Schuchard 26.09.2018 14:29

@MattSchuchard Как так?

daniel the man 26.09.2018 14:39

Вы можете использовать конфигурацию, чтобы легко создать сетевой интерфейс между двумя контейнерами.

Matt Schuchard 26.09.2018 14:57

@MattSchuchard Есть предложения, как это сделать?

daniel the man 26.09.2018 15:01
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
4
915
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку вы используете докер, адрес «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, какой номер отсутствует?

daniel the man 26.09.2018 13:39

172.17.0.1, это IP-адрес сети докеров по умолчанию, но его можно переопределить, поэтому проверьте.

Fredrik 26.09.2018 14:50

Другие вопросы по теме