Encontré una solución aquí
Gracias a Stéphane Graber.
Cita:
"Si ejecuta un LXD moderno con un puente administrado por LXD, puede configurar la propiedad ipv4.address en la interfaz de red del contenedor.
- lxc detener c1
- conexión de red lxc lxdbr0 c1 eth0 eth0
- conjunto de dispositivos de configuración lxc c1 eth0 ipv4.address 10.99.10.42
- lxc iniciar c1
"
Si desea especificar direcciones IP para contenedores en LXD, mire el /etc/default/lxd-bridge
expediente. Allí encontrará un lugar para incluir un archivo de configuración externo de dnsmasq.
Suponiendo que está en Ubuntu 16.04,
Abre /etc/default/lxd-bridge
en tu editor favorito. Deberá usar sudo
.
Alrededor de la línea 16,
LXD_CONFILE=""
Agregue una entrada que apunte a un archivo de configuración de dnsmasq. Vas a tener que crear este archivo. Así que llámalo como quieras. Algo así como lxd_bridge.conf
.
Luego crea y edita el archivo que has nombrado arriba.
Agregue una línea para cada contenedor al que desee asignar una dirección IP específica.
Así:
dhcp-host=containername,ipaddress
Luego deberá reiniciar lxd-bridge y luego reiniciar los contenedores.
Aquí hay un artículo detallado sobre esto:
IP estáticas LXD
Tenga en cuenta que si está ejecutando Alpine Linux en sus contenedores, se deben tomar medidas adicionales para que esto funcione. alpine
Información del sistema:lxc-3.0.1
el Ubuntu Server 18.04.1
.
Después de mucho buscar, encontré este simple comando para asignar una ip estática a un contenedor:
lxc config set [container] raw.lxc 'lxc.net.[i].ipv4.address = [ip]/[subnet-mask]'
donde [container]
, [i]
, [ip]
y [subnet-mask]
son el nombre del contenedor, el número de interfaz de red, la dirección IP estática deseada y el CIDR para la máscara de subred deseada, respectivamente.
Por ejemplo, si desea asignar 240.10.0.20
con máscara de subred 255.255.255.0
a la interfaz de red número 0 del contenedor llamado hello
, puedes usar:
lxc config set hello raw.lxc 'lxc.net.0.ipv4.address = 240.10.0.20/24'
Probablemente necesitará reiniciar el contenedor después de ejecutar el comando.
Tenga en cuenta que esto probablemente no cambiará la dirección IP actual del contenedor (en mi configuración de todos modos); el contenedor debe ser accesible tanto en su IP original como en la IP recién asignada. Como resultado, la entrada del contenedor en lxc list
puede contener varias direcciones IP.
Eche un vistazo aquí para conocer las claves de configuración aceptables que se pueden agregar a lxc.net.[i]
. Esta página web contiene información sobre la notación CIDR.
Desafortunadamente, no puedo recordar dónde encontré esta solución por primera vez. Aquí hay un problema relevante de GitHub que podría contener información útil.