Como obtenho o endereço IP de um contêiner LXC para automação?

3

Como posso obter o endereço IP de um contêiner LXC em um formato que eu possa usar em scripts?

Neste momento, o comando lxc info <container> reporta essa informação, mas em formato legível, com muita informação.

Gostaria de APENAS OBTER o endereço IP dado um nome de contentor.

Nota : Eu TENHO para duplicar esta questão porque o Linux Containers mudou muito.

Instalar lxd e usar contêineres sem privilégios é a maneira padrão de ir até hoje (2017) e acho que as soluções postadas na pergunta original não resolvem o problema nesse caso.

Em qualquer caso, instalei o pacote lxc1 para obter acesso ao comando lxc-info , mas esse comando não reconhece nenhum dos meus contêineres sem privilégios.

    
por jgomo3 01.06.2017 / 16:36

5 respostas

2

Uma solução nativa (que não é mais bonita do que a resposta do @silok) seria

lxc list "<name>" -c 4 | awk '!/IPV4/{ if (  != "" ) print }'

Existem alternativas para awk , mas isso é tangencial à questão.

    
por Jonathan Y. 13.06.2017 / 23:27
2
lxc list | grep nameofthecontainer | egrep -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"

Isto é o que eu estou usando, eu passo o nome do container como uma variável.

    
por Neil 02.02.2018 / 00:55
1

Até agora, esta é a maneira mais fácil:

lxc list -c4 --format csv <container> | cut -d' ' -f1

Mas talvez seja possível sem cut .

    
por anatoly techtonik 14.07.2018 / 03:23
0

Provavelmente um pouco feio, mas:

lxc-info -n my-container | grep IP: | tr -d ' ' | cut -f2 -d:

você receberá apenas o endereço IP

    
por siloko 01.06.2017 / 16:54
-1
lxc-info --name container --ips --no-humanize

imprime os endereços IP do contêiner.

O valor retornado é uma lista porque um contêiner pode ter mais de um endereço.

    
por G. Fiedler 17.01.2018 / 18:56