2015-07-17 1 views
2

У меня есть два контейнера докеров, работающих на хосте, скажем A и B. Docker. Запросы на службу, запущенную на другом хосте, и этот запрос и ответ работают отлично. Я хочу сделать это, я хочу перенаправить все запросы, исходящие от A, чтобы перейти к сервису через контейнер B (используемый для некоторого аудита) и все ответы, поступающие от службы, для повторного доступа к A-B.Перенаправление всех запросов одного контейнера докера на другой?

Как это сделать? Возможно ли достичь такой прозрачной установки, что А никогда не узнает, что B проводит аудит своих запросов и ответы на них?

ответ

1

Вы можете добавить запись в /etc/hosts из Докер контейнера с использованием --add-host параметра docker run command. Код на контейнере докера А должен только теперь назвать эту запись. Все, что вам нужно сделать, это передать это имя в поле --add-host, указывая на свой контейнер-докер B, если вам нужна услуга аудита, в противном случае вы можете передать другим хостом IP.

Надеюсь, эта помощь.

+0

Если я это сделаю, он больше не остается прозрачным для A. Я предполагаю, что вы говорите, что я должен явно вызвать контейнер B из A, где, поскольку я хочу, чтобы A должен был делать CALL-C и B, должен станьте человеком посредине, чтобы перехватить этот вызов, и A никогда не должен знать, что B также существует где-то между A и C, перехватывающим вызов. Когда C отвечает на запрос A, он также должен пройти через B таким же образом. –

+0

Исправьте меня, если я вас неправильно понял. Что вы говорите, разве это не похоже на привязку докера? https://docs.docker.com/articles/ambassador_pattern_linking/ Причины я не могу принять это решение, потому что в будущем я может иметь несколько контейнеров, как А1, А2, А3 делают запросы к C1, C2, C3 и я хочу, чтобы все эти запросы проходили через один B, который просто захватывает эти запросы, обрабатывает и пересылает их в C1/C2/C3 и делает то же самое с ответом, исходящим от них. Я не могу делать жестко закодированные ссылки b/w B и C1, C2, C3, чтобы я мог динамически поддерживать большее количество сервисов. –