contenedor lxd: reenvío de puertos como docker

¿Hay alguna forma de hacer el reenvío de puertos en contenedores lxd como lo hace docker?

Escuché algunos rumores de que no hay un camino fácil.

Según la página de inicio de lxd, este es su objetivo:

Intuitivo (API simple y clara y experiencia de línea de comandos nítida)

Para mí, el reenvío de puertos es una parte importante.

No tengo prisa. Si se planea para una versión futura, esta sería una respuesta válida.

Cuatro años después, la predicción dada en esta respuesta fue, afortunadamente, también pesimisitc. El reenvío de puertos se ha implementado en LXD mientras tanto, tal como está documentado aquí.

Para reenviar el puerto 80 en el host al 8080 en el contenedor, simplemente haga

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

Uno de los desarrolladores escribió en este problema sobre el tema:

Esto se ha cerrado, pero para dar una respuesta clara: lxd (al menos como se pretende actualmente) no hará redes de host. Por lo tanto, en general, reenviaría el puerto a un servidor web en un contenedor lxd de la misma manera que lo haría con lxc: puede pasar una NIC desde el host al contenedor y hacer que su enrutador local le proporcione su propia dirección; o use redes basadas en rutas para VET de contenedores; o use el reenvío de iptables para reenviar el tráfico del host al contenedor(que es lo que suelo hacer).

Ver https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-networkpara más información.

Entonces, me temo que, tal como están las cosas actualmente, no hay reenvío de puertos, ni ahora ni en el futuro. (Esta predicción resultó no ser cierto)

@womble si esta línea es todo lo que se necesita, votaré a favor y aceptaré su respuesta. Por favor, rellene su comentario como respuesta. Agradecer.

No estoy seguro de si esto le ayuda, pero es posible asignar una interfaz de red a su contenedor. Por lo tanto, ya no hay tanta necesidad de hacer reenvío de puertos…

@gf_yesterday dijiste “es posible asignar una interfaz de red a tu contenedor”. Puedo manejar esta solución (asignar una nueva interfaz de red)… pero soy vago. Prefiero el reenvío de puertos.

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