Запуск контейнера Docker с использованием существующего сетевого пространства имен iproute2 - PullRequest
0 голосов
/ 02 ноября 2018

Как я могу ограничить запуск док-контейнера в существующем сетевом пространстве имен в стиле 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.

...