Eu tive um problema semelhante em que queria contêineres com IPs estáticos e queria que eles fossem visíveis em minha rede local.
Não descobri como fazer isso via perfis lxd. Mas abaixo estão as etapas para criar um único contêiner com um IP estático. Em seguida, você pode escrever um script que clona o contêiner e simplesmente altera seu IP no arquivo / etc / network / interfaces, o que permite a criação de contêineres com IPs estáticos.
Aqui estão os passos:
Crie uma ponte na máquina host.
edite: / etc / network / interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0
#iface eth0 inet dhcp
auto br0
iface br0 inet static
address 172.16.115.208
broadcast 172.16.119.255
netmask 255.255.248.0
gateway 172.16.112.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
Substitua os endereços IP pelos seus valores.
Observe que "bridge_ports" adiciona sua eth0 à ponte.
Reinicie a rede:
sudo /etc/init.d/networking restart
Chame a nova ponte:
sudo ifup br0
Neste ponto, você deve garantir se ainda tem conectividade de rede por meio da ponte recém-criada.
Edite seu perfil lxc e defina pai como a ponte recém-criada.
lxc profile edit default<or your container's profile name>
- parent: lxcbr0
+ parent: br0
Acesse o contêiner e defina o endereço IP estático.
lxc exec my-container-name /bin/bash
sudo vim /etc/network/interfaces
#auto eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 172.16.115.252
broadcast 172.16.119.255
netmask 255.255.248.0
gateway 172.16.112.1
Novamente, altere os endereços IP de acordo. Reinicie seu contêiner e verifique se ele foi atribuído ao novo IP.
lxc info my-container-name
Agora, seu contêiner tem um IP estático e é visível na rede. Agora você pode escrever um script que clona e altera o valor de IP no arquivo de interfaces para obter vários contêineres com diferentes IPs estáticos.