Pular para o conteúdo
GitHub

Docker

Alt-C ou Comando → Docker lista os seus contentores no painel ativo, agrupados por projeto Compose, com os contentores que não pertencem a nenhum projeto no fim. O outro painel mostra o contentor selecionado: estado, portas, redes, montagens, comando e política de reinício, além da utilização de CPU, memória, rede e disco em tempo real, com um gráfico do último minuto. Num projeto, mostra a pasta do projeto, os seus contentores e a utilização conjunta. Esc fecha a vista e guarda o filtro para a próxima vez.

A CPU aparece duas vezes. Agora % é a leitura mais recente, e Média % é a média dos últimos segundos, como no monitor de atividade, por isso mantém-se estável quando um contentor trabalha aos repelões. Uma lista demasiado estreita para os dois mostra apenas Média %. Os detalhes mostram o mesmo par como CPU agora e CPU média, e um projeto soma ambos para os seus contentores em execução.

Tecla Ação
↑ ↓, PgUp, PgDn, Home, End Mover
← → / Enter Recolher ou expandir um projeto; Enter num contentor passa para os detalhes
S / X / R Iniciar / parar / reiniciar o contentor, ou os contentores do projeto
P Pausar ou retomar
F Explorar os ficheiros do contentor
E, Alt-2 Abrir uma shell no contentor, ou voltar à shell já aberta
Alt-1 Voltar a mostrar a visão geral do contentor, também a partir da shell
D Mostrar o espaço em disco, ou voltar aos contentores
/ Filtrar por nome, serviço, imagem ou projeto
Alt-O Abrir a pasta do ficheiro Compose ao lado da lista
Tab Alternar entre a lista e os detalhes
Alt-W Maximizar o painel com o foco

Parar e reiniciar pedem confirmação primeiro. Num projeto, uma ação só afeta os contentores que alteraria, pelo que Começar só inicia os contentores parados.

Alt-O abre no outro painel a pasta do ficheiro Compose que iniciou o contentor ou o projeto, com o cursor no ficheiro, ou a pasta do projeto quando o Compose não indica nenhum ficheiro. A lista fica como estava, tal como no monitor de atividade (consulte Atividade e memória). Um contentor que o Compose não iniciou não tem pasta neste computador, por isso Alt-O indica-o, e F explora os seus ficheiros.

F num contentor em execução fecha a vista Docker e mostra o sistema de ficheiros do contentor nesse painel, a começar no diretório de trabalho. O título do painel mostra o nome do contentor. O outro painel continua na pasta do host, pelo que F5 copia em ambos os sentidos, enquanto F3 mostra, F7 cria uma pasta e F8 elimina dentro do contentor. A pesquisa, os tamanhos, as pré-visualizações e a edição só funcionam no host. Alt-C volta à vista Docker, e .. na raiz do contentor devolve o painel à pasta do host que mostrava antes. Explorar exige sh no contentor, pelo que não é possível listar imagens mínimas sem shell.

Enquanto um painel mostra os ficheiros de um contentor, a linha de comando acompanha-o: passa a ser a shell desse contentor, iniciada na pasta do painel, com o nome do contentor no início do prompt. Os comandos são executados dentro do contentor, o painel é atualizado quando terminam e cd aí move o painel. Ctrl-O mostra a consola desse contentor, assinalada como ▣ nome consola. Num painel do host, a linha de comando e Ctrl-O voltam a pertencer ao host, e o que lá tinha escrito continua lá. Trata-se da mesma shell do separador Shell do contentor na vista Docker.

Para manter a linha de comando no host, desative Seguir em Opções → Plugins. Nesse caso, enquanto um painel mostra os ficheiros de um contentor, a linha de comando fica esbatida e assinalada com ⌂ host, e Enter não faz nada até um painel do host estar ativo, para que um comando nunca seja executado na máquina errada.

E abre uma shell no contentor (bash, se a imagem o tiver; caso contrário, sh) no separador Shell do painel de detalhes, e envia-lhe as teclas, incluindo as teclas de função. Alt-1 mostra a visão geral, Alt-C volta à lista e a roda do rato percorre para trás a saída da shell. Uma shell continua em execução enquanto vê outros contentores, fecha a vista Docker ou usa a consola do host; o respetivo contentor fica assinalado com ›_ na lista e é contado no atalho Alt-C. A shell fecha quando sai dela, quando o contentor para ou quando o Borg termina (o Borg pede confirmação primeiro se houver shells abertas).

O plugin usa a CLI docker e o contexto atual, pelo que funciona igualmente com Docker Desktop, OrbStack, Colima e motores remotos. Pode desativá-lo em Opções → Plugins.

D na vista Docker, ou F9 → Docker → Espaço em disco, mostra o que o Docker guarda em disco no lugar da lista de contentores, com uma linha por tipo: Cache de compilação, Imagens sem nome, Imagens não usadas, Imagens em uso, Contentores parados, Volumes anónimos não usados, Volumes com nome não usados, Volumes em uso e Redes não usadas. Cada linha tem uma contagem, um tamanho e o espaço que a remoção liberta, e a linha do topo soma tudo o que pode recuperar. O Borg mede com docker system df --verbose em segundo plano, o que pode demorar num motor muito ocupado. R volta a medir, e o Borg faz o mesmo quando o comando seguinte no prompt termina depois de F8 ter escrito um.

As imagens sem nome são compilações a que já nada dá nome, normalmente porque a etiqueta passou para uma compilação mais recente. As imagens não usadas têm nome, e nenhum contentor foi criado a partir delas. As imagens e os volumes que os contentores usam, em execução ou parados, ficam até esses contentores serem removidos, pelo que as suas linhas não libertam nada. Uma imagem só liberta as camadas que nenhuma outra imagem partilha, e por isso o tamanho recuperável pode ficar muito abaixo do seu tamanho.

→ ou Enter expande um tipo nos seus itens, do maior para o menor, e ← volta a recolhê-lo. O outro painel mostra o item selecionado: as etiquetas de uma imagem, o ID, o tamanho partilhado, a data de criação e o número de contentores; o tipo de um registo da cache de compilação, se está partilhado ou em uso e quando uma compilação o usou pela última vez; a imagem e o estado de um contentor; os dados de um volume, descritos nos parágrafos seguintes. Os tamanhos que o Docker não conseguiu medir aparecem como ?, e / filtra todos os tipos de uma vez. Também encontra volumes pelo projeto Compose e pelos contentores e imagens que os usam.

As linhas dos volumes ocupam o espaço que sobra na coluna Nome com Último uso, Criado, Projeto e Usado por, tantos quantos couberem, e Alt-W maximiza o painel para os mostrar todos. Projeto é o projeto Compose que criou o volume. Usado por lista os contentores que o montam, em execução ou parados. Os volumes anónimos aparecem com os primeiros 12 caracteres do ID.

Último uso mostra em uso enquanto estiver em execução um contentor que monte o volume. Caso contrário, indica o dia em que o último desses contentores parou, que o Docker regista com exatidão. Depois de os contentores serem removidos, o Docker deixa de ter qualquer registo do uso do volume. Quando o Borg lê diretamente os ficheiros de um volume, vê também quando foram alterados pela última vez, e uma alteração mais recente aparece como esse dia precedido de ~. Esse dia é uma estimativa: ler um ficheiro não deixa rasto, por isso o volume pode ter sido usado depois. Uma célula vazia significa que o Borg não sabe nenhum dos dois.

O outro painel mostra a hora completa do último uso e da criação, o projeto Compose com o nome que o volume tem nele e o Controlador quando o volume usa um controlador diferente de local ou tem opções. Cada contentor que monta o volume ocupa uma linha com o seu estado e o caminho onde monta o volume. Num volume anónimo, esses contentores aparecem em Criado para, com as respetivas imagens. O Docker esquece esse contentor quando é removido. Pasta e Contém mostram onde estão os ficheiros nesta máquina e o que está no topo do volume.

Enter num volume mostra os seus ficheiros no painel, só para leitura. O título marca o painel com ▥ e só leitura, e os caminhos começam no topo do volume. F3 mostra ficheiros e F5 copia ficheiros para o outro painel. O Borg recusa tudo o que alteraria o volume: editar, mover, eliminar, criar pastas, compactar e copiar para dentro dele. .. no topo do volume devolve o painel à pasta que mostrava antes, e a linha de comandos fica nessa pasta o tempo todo. Uma sessão guardada enquanto um painel mostra um volume abre essa pasta da próxima vez.

O Borg lê diretamente os ficheiros de um volume quando estão nesta máquina. Com o OrbStack no macOS, estão na partilha do OrbStack em ~/OrbStack/docker/volumes, que o macOS trata como um volume de rede: autorize a aplicação de terminal em Volumes de rede, em Definições do Sistema › Privacidade e segurança › Ficheiros e pastas. No Linux, o Borg lê a pasta do volume quando o motor corre na mesma máquina e o Borg a pode abrir, como acontece com o Docker em modo rootless ou quando o Borg corre como root. A pesquisa e os tamanhos funcionam então como em qualquer pasta.

Nos outros casos, como com o Docker Desktop, um contexto remoto ou o Docker no Linux quando só o root lê as suas pastas, o Borg mostra os ficheiros através de um contentor auxiliar. O auxiliar executa a imagem busybox, fixada numa só compilação, sem rede, com o sistema de ficheiros só de leitura e sem outro privilégio além de ler ficheiros, e monta o volume só para leitura. Da primeira vez, o Borg pergunta antes de o Docker transferir a imagem, com cerca de 2 MB, que depois fica no motor como borg-commander/volume-helper. O rodapé mostra A transferir busybox… ou A iniciar o contentor auxiliar… até o painel abrir. O Borg remove o auxiliar quando o painel sai do volume ou quando o Borg termina, e um auxiliar que fique para trás para sozinho ao fim de um dia. Aí, a pesquisa e os tamanhos só funcionam no host, como nos ficheiros de um contentor, e o espaço em disco não conta o auxiliar entre os contentores que usam o volume.

Quando uma medição termina, o Borg lê em segundo plano os volumes a que chega diretamente, do maior para o menor, e o rodapé mostra A ler os ficheiros dos volumes… até acabar. R volta a lê-los ao medir de novo.

F8 escreve o comando de limpeza da linha selecionada no prompt da shell do host e mostra a consola. Nada é executado até premir Enter, por isso pode ler o comando, alterá-lo ou limpá-lo antes com Ctrl-U. Num tipo, F8 escreve o respetivo prune, como docker image prune -a para as imagens não usadas ou docker volume prune para os volumes anónimos não usados, e o Docker pede confirmação antes de eliminar o que quer que seja. Num item, F8 escreve docker rmi, docker rm ou docker volume rm com esse item, ou com todas as imagens, contentores ou volumes marcados. Space ou Insert marca um item, e * inverte as marcas do tipo selecionado. Uma imagem sai por todas as etiquetas, já que o Docker a elimina com a última, ou pelo ID quando não tem nenhuma. Os registos da cache de compilação saem todos juntos com docker builder prune. O Borg nunca acrescenta -f nem --force. Um nome com um carácter de controlo não recebe nenhum comando, porque o prompt tomaria esse carácter por uma tecla.

Os volumes guardam os dados que os contentores gravaram, como os ficheiros de uma base de dados, e um volume removido não pode ser recuperado. O outro painel repete este aviso junto a cada comando de volumes. Quando a CLI docker tem mais de um contexto, os comandos indicam aquele com que o Borg mediu, como em docker --context staging image prune, para chegarem ao mesmo motor seja qual for o contexto que a shell escolheria. Vão sempre para a shell do host, também enquanto um painel mostra os ficheiros de um contentor, porque a vista Docker mantém a linha de comando no host.

Este guia acompanha o ramo main · Borg 0.11.0 · 1f6bce6
A versão mais recente pode ainda não incluir tudo o que aqui se descreve. Notas de versão

Traduzido a partir do guia em inglês. As correções são bem-vindas. Os comandos e os atalhos de teclado não são traduzidos.