Skip to content

Instantly share code, notes, and snippets.

@jurandysoares
Forked from berndbausch/LXD-cheat-sheet.md
Last active August 10, 2021 21:25
Show Gist options
  • Save jurandysoares/c6550f7a4fa38bdce0b9f683b54e973b to your computer and use it in GitHub Desktop.
Save jurandysoares/c6550f7a4fa38bdce0b9f683b54e973b to your computer and use it in GitHub Desktop.
LXD cheat sheet
title author date
ASA: Folha resumo do LXD
Jurandy Soares
10/ago/2021

Resumido de:

<https://stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/>.

Curiosamente, o cliente de linha de comando do LXD é nomeado... lxc!

Listar contêineres disponíveis

lxc image list ubuntu:        # ubuntu: é fonte de imagem oficialmente suportada
lxc image list images:        # images: é uma fonte não suportada
lxc image alias list images:  # Lista nomes de fácil utilização

Lançar um contêiner

Isso cria e inicia um contêiner.

lxc launch ubuntu:20.04 NOMECONTEINER   # Nomes de imagem do contêiner são opcionais
lxc launch ubuntu:20.04/armhf armcont   # Arquitetura específica
lxc launch images:alpine/3.14/amd64      # Fonte de imagens não suportadas images:

Criar contêiner

Sem iniciá-lo.

lxc init images:alpine/3.14/amd64 alpinecont
lxc copy CONTEINER1 CONTEINER2        # clone
lxc delete alpinecont [--force]       # --force se estiver em execução

Começar/parar depois de criá-lo

lxc start alpinecont
lxc stop alpinecont [--force]         # --force se não quiser parar
lxc restart alpinecont [--force]
lxc pause alpinecont                  # SIGSTOP para todos os processos de contêineres

Listar contêineres locais

lxc list 
lxc list --columns "nsapt"            # nome, estado, arquitetura, PID de início, tipo
lxc list security.privileged=true     # filtro para propriedades
lxc info NOMECONTEINER                # informações detalhadas sobre um contêiner

Colunas disponíveis para o comando list

Caracter Descrição
4 Endereço IPv4
6 Endereço IPv6
a Arquitetura
c Data de criação
n Nome
p PID do processo de inicialização do contêiner
P Perfis
s Estado
S Número de instantâneos
t Tipo (persistente ou efêmera)

Renomear

lxc move NOMECONTEINER NOVONOME

Configuração

As alterações de configuração são aplicadas imediatamente, mesmo se o contêiner estiver em execução.

export VISUAL=/usr/bin/vim
lxc config edit NOMECONTEINER           # lançar editor
lxc config set NOMECONTEINER KEY VALUE  # alterar um único item de configuração
lxc config device add NOMECONTEINER DISPOSITIVO TIPO CHAVE=VALOR
lxc config show [--expanded] NOMECONTEINER

As configurações podem ser salvas como perfis.

Entrar no contêiner

lxc exec NOMECONTEINER -- PROGRAMA OPÇÕES
lxc exec NOMECONTEINER sh
lxc exec NOMECONTEINER --env CHAVE=VALOR PROGRAMA   # variável de ambiente

Este comando executa o programa em todos os namespaces e cgroups do contêiner.O programa deve existir dentro do contêiner.

Acessar arquivos de contêiner

lxc file pull NOMECONTEINER/etc/passwd /tmp/mypasswd
lxc file push /tmp/mypasswd NOMECONTEINER/etc/passwd 
lxc file edit NOMECONTEINER/etc/passwd 

Instantâneos

lxc snapshot NOMECONTEINER NOMESNAP    # NOMESNAP é opcional; Nome padrão é snap*X*
lxc restore NOMECONTEINER NOMESNAP     # Redefine o contêiner para instantâneo
lxc copy NOMECONTEINER/NOMESNAP NOVOCONTAINER               # novo contêiner a partir do instantâneo
lxc delete NOMECONTEINER/NOMESNAP      # Apagar um instântaneo
lxc info NOMECONTEINER                 # lista instantâneos dentre outras informações
lxc move NOMECONTEINER/NOMESNAP NOMECONTEINER/NOVONOMESNAP  # Renomear instantâneo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment