Связывание контейнера в AWAR Fargate
Я пытаюсь настроить небольшой пример в AWG Fargate и попытаться создать один контейнер приложения с одним контейнером базы данных.
Определение задачи запускает оба контейнера, но мой контейнер приложения не работает с getaddrinfo ENOTFOUND db db:3306
.
Таким образом, контейнер базы данных не может быть найден моим контейнером приложения.
Поскольку Fargate не разрешает "ссылки" контейнеров Docker, я хотел бы знать, как они могут общаться друг с другом.
Контейнер базы данных имеет имя db
с портом 3306
, и мой контейнер приложения настроен на его использование.
К сожалению, определение ссылок контейнеров недоступно для Fargate, но только для "oldschool" ECS/EC2.
В локальной настройке настройки докеры он работает таким образом.
Ответы
Ответ 1
Контейнеры в задачах Fargate используют пространство имен в сети, поэтому вам вообще не нужно использовать ссылки. Вы можете просто общаться через localhost.
Например, если у вас есть контейнер A, на котором запущен веб-сервер на порту 8000, контейнер B может достичь его с помощью curl http://localhost:8000/
Ответ 2
Возможно, вы можете настроить его, чтобы службы могли обмениваться информацией по общедоступному IP-адресу друг с другом, а затем защищать порты, используя VPC, только службы могут обмениваться данными с ними.