Контейнер lxd: переадресация портов, как в docker

Есть ли способ выполнить переадресацию портов в lxd-контейнерах, как это делает docker?

Я слышал некоторые слухи о том, что легкого пути нет.

Согласно домашней странице lxd, это их цель:

Интуитивно понятный (простой, понятный API и четкий интерфейс командной строки)

Для меня переадресация портов - важная часть.

Я никуда не тороплюсь. Если он запланирован для будущего выпуска, это было бы правильным ответом.

Четыре года спустя предсказание, данное в этот ответ был, к счастью, слишком pesimisitc. Тем временем в LXD была реализована переадресация портов, как есть задокументировано здесь.

Чтобы перенаправить порт 80 на хосте на порт 8080 в контейнере, просто выполните

lxc config device add jitsi port1 proxy listen=tcp:<hostip>:80 connect=tcp:<ontainerip>:8080

Один из разработчиков написал в этот вопрос о теме:

Это было закрыто, но чтобы дать четкий ответ: lxd (по крайней мере, предполагаемый в настоящее время) не будет подключаться к сети хоста. Таким образом, в общем случае вы бы перенаправили порт на веб-сервер в контейнере lxd так же, как вы бы поступили с lxc - вы можете передать сетевой адаптер с хоста в контейнер и попросить свой локальный маршрутизатор предоставить ему свой собственный адрес; или использовать сеть на основе маршрутов для контейнерных веток; или использовать переадресацию iptables для переадресации трафик хоста в контейнер (что я обычно и делаю).

Видеть https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-networkдля получения дополнительной информации.

Так что, боюсь, при нынешнем положении дел переадресация портов невозможна ни сейчас, ни в будущем. (Это предсказание оказалось, что это неправда)

@womble, если эта одна строка - все, что нужно, тогда я проголосую за принятие вашего ответа. Пожалуйста, заполните свой комментарий в качестве ответа. Спасибо.

Не уверен, поможет ли вам это, но можно просто назначить сетевой интерфейс вашему контейнеру. Таким образом, больше нет такой большой необходимости в переадресации портов…

@gf_yesterday вы сказали: “вашему контейнеру можно назначить сетевой интерфейс”. Я могу справиться с этим решением (назначение нового сетевого интерфейса)… но я ленив. Я предпочитаю переадресацию портов.

There’s no easy way only if `iptables -t nat -I PREROUTING -d -p tcp --dport - j DNAT - к :