Как я могу предоставить docker контейнеров внутри друг другу с помощью AWS CloudFormation? - PullRequest
1 голос
/ 10 июля 2020

Я AWS новичок. У меня есть контейнер веб-сервера и контейнер концентратора селена. Моему веб-серверу требуется доступ к другому контейнеру; Я могу сделать это в среде разработки, используя docker -compose (по умолчанию контейнеры открываются друг другу по имени). Я не понимаю, как это сделать с помощью AWS CloudFormation. В ContainerDefinition есть параметр "links", но я думаю, что здесь используется устаревший параметр docker link. Поэтому я не хочу его использовать.

Есть какие-нибудь рекомендации?

PS: Я не хочу открывать экземпляр селена в publi c, поэтому использование publi c имен хостов / IP - это не вариант.

Ответы [ 3 ]

2 голосов
/ 11 июля 2020

Хорошо, я решил свою проблему. Я следил за этим блогом .

и поместил 2 тесно связанных контейнера в одно определение задачи, и я просто смог получить доступ к другому контейнеру, например: localhost: port.

Он работает нормально.

Для тех, кто сталкивается с той же проблемой; это решение может быть не лучшим для вас, если ваши контейнеры не связаны тесно и однажды вам может потребоваться развернуть их на отдельных машинах.

Но для меня это хорошо.

2 голосов
/ 10 июля 2020

В то время как параметр links равен legacy в чистом мире Docker, это по-прежнему самый простой способ подключить контейнеры в мире AWS ECS , не полагаясь на обнаружение выделенных сервисов (например, Consul или Route 53 ).

Самая большая оговорка при использовании links заключается в том, что круговые ссылки невозможны. Кроме того, контейнеры должны работать в одной задаче / службе. Параметр links не будет работать с несколькими задачами / службами.

0 голосов
/ 12 июля 2020

Создайте частное пространство имен DNS и зарегистрируйте свои службы в этом пространстве имен через DnsConfig. Это сделает вашу службу доступной через доменное имя, указанное как Name. Мы используем Type: A, TTL: 10 как конфигурацию DnsRecords.

...