Comments 10
Я это требование имплементировал. Как теперь эффективнее всего его тестировать? Как эмулировать разрыв и восстановление связи между пинг и понг контейнерами?
Как эмулировать разрыв и восстановление связи между пинг и понг контейнерами?
Потушить понг контейнер, а потом его запустить.
docker stop pong-service-container
/ docker start pong-service-container
Я бы порекомендовал сразу использовать docker-compose, он автоматически создаёт сеть для контейнеров, плюс в пару директив можно раскидать контейнеры по любому количеству сетей
+1, но есть один ньюанс.
Если изменится один из образов, после пересоздания контейнера из этого образа (например через docker-compose up -d
), так же может измениться и его IP адрес. Но другие контейнеры об этом не узнают и будут долбиться на старый (который резолвился при их запуске). Решается перезапуском всех контейнеров из docker-compose.yaml (docker-compose restart
)
Например в связке nginx+php-fpm при изменении php образа и пересоздания контейнера, nginx может начать отдавать 502 Bad gateway
Пример: pastebin.com/NUBeVbX3
Как уже писали, можно использовать что-то для управления DNS именами внутри виртуальных сетей Docker (docker swarm, k8s, etc.). Когда сам искал решение, то предлагали просто в nginx выставить resolver на IP docker DNS (в названии не уверен), но у меня не срабатывало. Вам уже дали ответ, что Consul как вариант, но если проект мелкий, то не вижу смысла тащить его.
--add-host=host.docker.internal:host-gateway
. В целом сиже на Mac, постоянно пользуюсь, когда нужно проверить взаимодействие нескольких сервисов поднятых локально.
Как получить доступ из одного докер-контейнера в другой докер-контейнер