Как направить весь трафик от одного контрейнера через другой контейнер

Я пытаюсь направить весь трафик из одного контейнера через другой. Я нашел руководство о том, как маршрутизировать весь контейнер через хост или хост через контейнер, но онлайн-источники немного тише по моей теме.

У меня есть один контейнер us-vpn, который в основном просто подключается к openvpn. Затем я хочу иметь еще один контейнер netflix, который направляет весь трафик через openvpn.

Я нашел --network container:us-vpn, который должен «совместно использовать сетевой стек другого контейнера». Я этого хочу?

В docker-compose также есть network_mode: "service:us-vpn", но я не нашел никакой документации о том, что он должен делать.

Вы можете использовать любой прокси-сервер (например, NGINX) внутри контейнера для перенаправления трафика в соответствии с URL-адресом запроса из одного центрального контейнера в другие контейнеры.

Ashwani 10.09.2018 12:10

@graywolf вы разрешили или не разрешили то, что вы страдали? Здесь можно сделать больше сообщений для дальнейшего обсуждения.

Light.G 25.09.2018 10:52
1
2
612
1

Ответы 1

Если бы контейнер us-vpn мог получить доступ к Интернету, как ожидалось, я думаю, что да, это то, что вы хотите.

При запуске контейнера с --network container:some-container-id это означает, что эти контейнеры совместно используют одно и то же сетевое пространство имен. Весь трафик этих контейнеров будет направлен вовне одним и тем же сетевым пространством имен. Вы можете упростить его, поскольку эти контейнеры используют один и тот же сетевой интерфейс для связи с внешним миром.

Поэтому я думаю, что приведенная выше фраза о «маршрутизации всего трафика из одного контейнера через другой» не совсем точна.

Как service:[service-name] (добавлен в docker-compose.yaml версии 2), если вы не развертываете с docker-compose, вам не нужно иметь дело с ним.

Другие вопросы по теме