Как использовать systemd-nspawn с --network-veth и --port ( -n и -p)?

Я бегу;

systemd-nspawn -n -p 80:80 -bD /path/to/httpd-container

В контейнере работает httpd. Однако доступ к хосту не дает доступа. Кроме того, ниже работает без параметров сети;

systemd-nspawn -bD /path/to/httpd-container

Что мне нужно, чтобы использовать опцию -n, --network-veth а также -p, --port?

1 ответ

Тот же вопрос здесь; чтобы помочь другим размножаться с нуля:

подготовка

вытащить мирское изображение из интернета

machinectl pull-raw --verify=no https://download.fedoraproject.org/pub/fedora/linux/releases/25/CloudImages/x86_64/images/Fedora-Cloud-Base-25-1.3.x86_64.raw.xz

Тест 1

Запустить сервер внутри контейнера без возможности подключения к сети

systemd-nspawn -M Fedora-Cloud-Base-25-1.3.x86_64.raw nc -l localhost 10000

в другом окне

echo hello | nc localhost 10000

работает

Тест 2

Включение частной сети и сопоставление портов, чтобы порт 10000 хоста был сопоставлен с портом 20000 контейнера

systemd-nspawn -M Fedora-Cloud-Base-25-1.3.x86_64.raw --private-network -p 10000:20000 nc -l localhost 20000

но потом

echo hello | nc localhost 10000

результаты в

Ncat: Connection refused.

Почему это неправильно

Я бы почти ожидал совершенно противоположных результатов; в любом случае второй тест - это тот случай использования, который я хотел бы получить на работе. Мне действительно нужно, чтобы мои контейнеры были изолированы от сети, и в любом случае мне нужно перенаправление портов, поскольку все контейнеры работают на одном и том же порту, который необходимо перенаправить на ряд портов на стороне хоста.

Что я пробовал

Добавление опции --network-interface=eno1 (мой публичный интерфейс) к миксу не помогло

Что меня озадачивает

Мой хост запускает fedora25 с отключенным selinux; Тем не менее я вижу эти сообщения при стрельбе из контейнера, которые, как я понимаю, не связаны, но так ли это?

mount(/tmp/nspawn-root-tR1Tr0/sys/fs/selinux) failed, ignoring: No such file or directory
mount(/tmp/nspawn-root-tR1Tr0/sys/fs/selinux) failed, ignoring: Invalid argument
Другие вопросы по тегам