Docker - Используете сеть Macvlan, пытаетесь опубликовать порт? - PullRequest
0 голосов
/ 19 октября 2018

В настоящее время у меня настроен док-сервер Macvlan следующим образом:

docker network create -d macvlan --subnet=10.30.140.0/22 --gateway=10.30.143.254 -o parent=br0 NETNAME1

Я хочу дать этому док-контейнеру IP-адрес, чтобы он мог быть доступен из любой точки нашей компании, поэтому, когда я пытаюсьзапустите мой докер-контейнер следующим образом:

docker run --net NETNAME1 -it --ip=10.30.141.43 -p 10.30.141.43:80:4873 --expose=80 verdaccio/verdaccio

Я могу получить доступ к этому IP-адресу из любого места, кроме хоста, на котором выполняется контейнер, и я не совсем уверен, почему.Я также хотел сделать так, чтобы порт хоста был 80, порт контейнера 4873. Но я могу получить к нему доступ, только если мой URL-адрес http://10.30.141.43:4873

. Есть ли причина, по которой он не будет перенаправлен на 80

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я могу получить доступ к этому IP-адресу из любого места, кроме хоста, на котором запущен контейнер, и я не совсем уверен, почему.

Это функция пространства имен сети Macvlan,см. https://hicu.be/bridge-vs-macvlan

Ваш аргумент опции -p неверен, он принимает номера портов только в виде -p container_port:host_port, поэтому вам нужно -p 4873:80 увидеть https://docs.docker.com/engine/reference/commandline/run/#publish-or-expose-port--p---expose

0 голосов
/ 19 октября 2018

Для проблемы маршрутизации может быть некоторое перекрытие между хост-сетью и докерной сетью, попробуйте использовать другую подсеть для докерской сети, такую ​​как 192.168.10.0/24 или что-то еще, например --subnet=10.10.140.0/24.

Длясопоставление портов, удалите лишние вещи из запуска Docker и выполните -p 80: 4873

docker run -d -net NETNAME1 80:4873 verdaccio/verdaccio

Тестирование:

Эти команды работают нормально, и я могу получить доступ к порту 80на хосте.

docker network create -d macvlan --subnet=10.30.140.0/22 --gateway=10.30.143.254  NETNAME1
docker network ls
docker run -it --rm --net=NETNAME1 --name verdaccio -p 80:4873 verdaccio/verdaccio
docker ps
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...