/ / Spring Boot + DynamoDB Local с Docker: Свържете се с localhost: 8000 failed - java, spring, docker, amazon-dynamodb

Пролетно зареждане + DynamoDB Local с Docker: Свържете се с localhost: 8000 не успя - java, spring, docker, amazon-dynamodb

Създадох пролетен Boot REST API, който задава запитванияDynamoDB, и бих искал да конфигурирам един или два Docker контейнера, които се изпълняват като microservices: един, който изпълнява DynamoDB локално и друг, който изпълнява REST API. Имам конфигуриран контейнер за Spring Boot REST API, но когато осъществявам повиквания към API, той не може да подава заявка към локалния DynamoDB, въпреки че DynamoDB работи на localhost: 8000. Грешката, която получавам, е:

Unable to execute HTTP request: Connect to localhost:8000 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

Въпреки получаването на това съобщение, мога да получа достъпDynamoDB чрез localhost чрез моя браузър. Това е така, сякаш Docker контейнерът няма да позволи на API за достъп до localhost: 8000, въпреки че API контейнерът работи на localhost: 8080.

Как да конфигурирам контейнера (ите), така че всеки да работи като отделна микросервиз? Някой е виждал подобен въпрос и преди?

Отговори:

1 за отговор № 1

Localhost вътре в контейнера не сочи към реалния хост на машината Localhost във всеки контейнер за пристанище той ще сочи към самия контейнер.

Docker предлага два начина за работа с тази организация:

Връзки. Това е отхвърлен и трябва да се избягва в нови проекти.

Мрежи. Docker може да създаде мрежа, в която да имате достъп до контейнерите си чрез имена на DNS (идентификатор на контейнер или име на контейнер).

Създайте мрежа в a начин, описан тук, заменете localhost от името на контейнера DB и вие ще бъдете готови да отидете.


0 за отговор № 2

По подразбиране контейнерите са доста изолирани и се изпълняват в рамките на отделни мрежи. Трябва да свържете контейнера DinamoDB в контейнер Spring Boot, като използвате настройката - - link:

https://deis.com/blog/2016/connecting-docker-containers-1/