Как я могу ограничить запуск док-контейнера в существующем сетевом пространстве имен в стиле iproute2?
ip netns exec mynetns docker-compose up
не работает (неудивительно).
РЕДАКТИРОВАТЬ комментарий:
$ docker network create --opt com.docker.network.bridge.name=dockerbridge dockernet
$ ip link set dockerbridge netns mynetns
RTNETLINK answers: Invalid argument
Попытка назначить интерфейс моей докерной сети пространству имен не будет работать.
Я хочу убедиться, что нет утечки трафика - поэтому я хочу убедиться, что все настроено до запуска контейнеров. поэтому ожидание запуска контейнеров, а затем добавление ветки в их сети для связи с mynetns кажется хрупким.
я пытаюсь перенаправить трафик с dockerbridge на / от внешнего ветки mynetns, может быть, так.
РЕДАКТИРОВАТЬ 2:
решение для меня было создать внешнюю сеть, используя
docker network create --opt com.docker.network.bridge.name=dockerbridge dockernet
и использование инструментов iproute2 для маршрутизации всего трафика от dockerbridge через внешнюю ветку mynetns.
мне пришлось настроить свой docker-compose.yml, чтобы включить
somecontainer:
dns: 8.8.8.8
networks:
default:
external:
name: dockernet
Помогла опция таблицы ip route, поэтому я мог установить второй шлюз по умолчанию только для док-мостов, которые я хочу подключить к mynetns.