O Docker é uma plataforma que ajuda os desenvolvedores a criar e implantar aplicativos em contêineres. Ele ajuda a resolver os desafios de compatibilidade do sistema operacional, fornecendo ambientes virtualizados leves para gerenciar esses aplicativos.

A principal interface de linha de comando (CLI) do Docker oferece ferramentas avançadas para os desenvolvedores que trabalham com contêineres. Começando com o comando básico docker, a CLI suporta cerca de 60 subcomandos, a maioria dos quais aceita vários argumentos de linha de comando para lidar com diferentes tarefas.

Como você pode usar a CLI do Docker

Seu ambiente do Docker pode ser o Docker Engine de código aberto ou a interface GUI amigável do Docker Desktop. A CLI será sua interface principal em um ambiente do Docker Engine, mas você também terá acesso à ferramenta de linha de comando se instalar o Docker Desktop.

Acreditamos que até os usuários do Docker Desktop se encontrarão utilizando a CLI assim que se familiarizarem com pelo menos estes 20 comandos essenciais do docker

Comandos do Docker que você deve conhecer

Vamos descobrir com quais comandos do Docker você deve estar mais familiarizado.

1. docker system

O comando docker system ajuda a inspecionar e gerenciar o ambiente do Docker. Ele oferece suporte a argumentos de linha de comando para executar tarefas específicas relacionadas ao gerenciamento, incluindo:

  • df mostra como você está usando o disco
  • prune remove redes, contêineres, imagens ou volumes não utilizados
  • info mostra informações relacionadas ao sistema
  • events exibe um registro de eventos do sistema em tempo real

Abaixo você vê o prompt inicial após a execução de docker system prune.

docker system prune
docker system prune.

2. docker context

Esse comando ajuda você a navegar e configurar diferentes contextos. No Docker, os contextos incluem nomes, informações de segurança da camada de transporte, configurações de ponto de extremidade e orquestradores.

Alguns dos argumentos de docker context:

  • ls exibe os detalhes do contexto padrão
  • inspect [CONTEXT} inspeciona um contexto especifico
  • create [CONTEXT] cria um novo contexto
  • use [CONTEXT] alterna entre contextos

Veja abaixo um exemplo de saída do site docker context ls:

docker context ls output.
docker context ls output.

3. docker pause e unpause

O comando docker pause congela os processos ativos de um contêiner. Para executá-lo, você deve especificar o nome do contêiner, conforme mostrado abaixo:

docker pause [CONTAINER]

Abaixo está um exemplo da saída que você pode esperar após pausar um contêiner.

Screenshot: the docker pause command.
docker pause output.

O comando docker unpause retoma os processos de contêineres pausados. Como no comando anterior, você deve especificar o nome do contêiner, conforme mostrado abaixo:

docker unpause [CONTAINER]

Abaixo está um exemplo da saída que você pode esperar depois de cancelar a pausa de um contêiner.

docker unpause
docker unpause.

4. docker rm

Esse comando remove contêineres, volumes e redes. Ele permite que você selecione o componente a ser removido com base em seus atributos. Por exemplo, você pode forçar a remoção de contêineres em execução ou de todos os contêineres especificados:

docker rm [CONTAINER] remove o contêiner cujo nome indicado. A saída desse comando está na captura de tela abaixo.

docker rm
docker rm.

5. docker rmi

Você usa esse comando para remover imagens. Você pode remover uma única imagem ou várias imagens de uma vez. Você pode descrever a imagem a ser removida usando a ID curta ou a ID longa. O comando é importante para manter o node do host limpo e eficiente.

O comando para remoção de imagens usa esta estrutura:

docker rmi [IMAGE ID]

Abaixo está um exemplo da saída deste comando.

docker rmi
docker rmi.

6. docker volume

Esse comando permite que você gerencie volumes no Docker. Você pode usá-lo para criar, remover, listar e inspecionar volumes.

Alguns dos argumentos do docker volume são:

  • create [OPTIONAL NAME] cria um novo volume. Você pode especificar o nome do volume ou deixar o Docker gerar um nome aleatório.
  • ls lista os volumes disponíveis
  • inspect [NAME] mostra informações detalhadas sobre o volume.
  • rm [NAME] remove um volume do Docker.

Abaixo está um exemplo da saída após a criação de um volume.

docker volume create
docker volume create.

7. docker search

Use esse comando para pesquisar imagens do Docker Hub, que você pode executar como contêineres em seu computador. Ele permite que você acesse as imagens de registro do Docker Hub sem visitar o site.

O comando segue esta estrutura: docker search . Você pode especificar os nomes das imagens que está procurando ou criar um filtro.

Abaixo está um exemplo da saída da seguinte consulta:

docker search --filter is-official=true --filter stars=500 mysql
docker search
docker search.

8. docker push

O comando docker push permite que você compartilhe suas imagens no registro do Docker Hub ou em um repositório privado.

A estrutura do comando é a seguinte:

docker push [OPTIONS] NAME[:TAG]

[OPTIONS] permite que você defina -disable-content-trust.

Por padrão, este valor é verdadeiro, e não é obrigatório incluí-lo.

NAME[:TAG] exige o uso do nome do registro, do repositório e da tag da imagem.

Abaixo está um exemplo da saída do comando docker push.

docker push
docker push.

9. docker pull

Esse comando baixa uma imagem do Docker de um repositório em um registro público ou privado.

O comando funciona da seguinte forma:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Esse comando permite que você use imagens existentes em vez de criar novas imagens sempre que precisar criar um aplicativo em contêiner.

O exemplo abaixo mostra a saída de um comando docker pull:

docker pull output
docker pull output.

10. docker ps

Por padrão, este comando exibe a lista de todos os contêineres em execução. No entanto, você pode adicionar uma flag para listar contêineres com base em atributos como tamanho de uso do disco, contêineres vinculados e etiquetas.

O comando segue a estrutura abaixo:

docker ps [OPTIONS]

Alguns de seus argumentos incluem:

  • -a exibe uma lista de contêineres em execução e finalizados
  • -s exibe o tamanho em disco e o tamanho virtual de cada contêiner

Você pode usar os dois juntos desta forma:

docker ps -as

Abaixo você encontra um exemplo da saída de um comando docker ps.

Parte da saída do comando docker ps.
Parte da saída do comando docker ps.

11. docker tag

Use essa tag para adicionar metadados, como a versão, à sua imagem. Normalmente, as tags são criadas quando uma imagem é criada, mas o comando docker tag permite que você adicione uma tag posteriormente, essencialmente criando um alias para a imagem de destino.

Esse comando segue a seguinte estrutura:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

No exemplo abaixo, listamos imagens com o nome “redis” Depois de marcar a imagem com um número de versão (“2.0”), o novo alias e a imagem originalmente marcada aparecem na lista.

docker tag
docker tag.

12. docker rename

Use esse comando para renomear um contêiner. Isso é útil quando você tem vários contêineres e deseja diferenciá-los com base em sua finalidade.

Esse comando segue a seguinte estrutura:

docker rename [OLD_NAME] [NEW_NAME]

Abaixo está um exemplo de saída antes e depois de um comando docker rename.

docker rename
docker rename.

13. docker commit

Esse comando permite que você crie novas imagens após as alterações nos arquivos de um contêiner. Isso é importante porque permite que você depure um contêiner usando um shell interativo.

Esse comando segue a seguinte estrutura:

docker commit [CONTAINER_ID] [name-of-new-image]

Abaixo está um exemplo e uma saída do comando docker commit command.

docker commit
docker commit.

14. docker network

Esse é um comando de gerenciamento de rede que permite que você crie aplicativos avançados conectando serviços e contêineres.

O comando tem a seguinte estrutura:

docker network [OPTIONS]

Seus argumentos incluem:

  • connect para conectar contêineres a redes
  • create para criar novas redes
  • disconnect para desconectar contêineres em execução das redes
  • rm para remover redes únicas ou múltiplas

Abaixo você encontra a saída de um comando docker network create.

docker network create
docker network create.

15. docker history

Esse comando fornece o histórico de uma imagem específica, ajudando você a entender como ela foi criada e exibindo o tamanho da imagem.

O comando tem a seguinte estrutura:

docker history [IMAGE]

Abaixo, vemos o histórico associado à imagem redis:latest.

docker history
docker history.

16. docker update

Esse comando permite que você atualize a configuração de um contêiner. Ele ajuda a evitar que os contêineres consumam muitos recursos do host do Docker. O formato do comando é:

docker update [OPTIONS] [CONTAINER]

Algumas de suas opções incluem:

  • --restart atualiza a política de reinicialização de um contêiner
  • --memory define o limite de memória de um contêiner
  • --cpus define o número de CPUs alocados

Veja abaixo um exemplo de saída de um comando docker update.

docker update
docker update.

17. docker plugin install

Esse comando permite que você gerencie plugins. Ele é essencial porque permite que você adicione novas funcionalidades sem alterar as configurações do host do Docker.

Os argumentos de docker plugin incluem:

  • create para criar novos plugins
  • enable para ativar os plugins instalados
  • install para instalar novos plugins
  • rm para remover um ou vários plugins
  • ls para exibir uma lista de plugins

Abaixo, usamos docker plugin install para adicionar um plugin ao nosso ambiente. Em seguida, usamos docker plugin ls para revelar seu status.

docker plugin ls
docker plugin ls.

18. docker container

Esse comando permite que você gerencie contêineres. Você o utiliza para executar ações como criar, eliminar e remover contêineres, entre outras.

As opções do site docker container incluem:

  • create para criar um contêiner
  • commit para criar uma nova imagem após alterações em um contêiner
  • exec para executar comandos dentro de um contêiner em execução
  • kill para parar um contêiner em execução
  • ls para exibir uma lista de contêineres em um host do Docker
  • restart para reiniciar um contêiner
  • run para criar um contêiner a partir de uma imagem e executá-lo
  • rm para remover um contêiner de um host do Docker

Veja abaixo um exemplo de saída de um comando docker container.

docker container restart
docker container restart.

19. docker logs

Esse comando recupera os registros de um contêiner. Ele fornece informações sobre as operações de um contêiner, o que pode ser essencial para a depuração.

Veja abaixo um exemplo de saída de um comando docker logs.

docker logs
docker logs.

20. docker swarm

Esse comando ajuda a gerenciar um docker swarm, um grupo de máquinas (virtuais ou físicas) que executam o Docker e estão configuradas para trabalhar juntas em um cluster. Esse comando facilita a configuração de um swarm e o aproveitamento de seus benefícios.

Abaixo estão algumas das opções do docker swarm:

  • init para iniciar um swarm
  • join para participar de um swarm
  • leave para sair de um swarm
  • update para atualizar um swarm

Abaixo você encontra um exemplo e uma saída de um comando docker swarm init.

docker swarm init
docker swarm init.

Resumo

O Docker é uma ferramenta eficaz para criar e gerenciar aplicativos em contêineres. Os comandos fáceis de entender de sua CLI facilitam a criação e a manipulação até mesmo de aplicativos complexos.

Se você dominar os 20 comandos acima, poderá acelerar o desenvolvimento de seus aplicativos em contêineres.

Na Kinsta, muitos clientes da Hospedagem Gerenciada de WordPress usam nossas ferramentas DevKinsta baseadas em Docker-Desktop para desenvolver e implantar seus sites.

Os clientes do serviço de Hospedagem de Aplicativos da Kinsta podem trabalhar com o Docker e seu provedor Git favorito (Bitbucket, GitHub ou GitLab) para controle de versão de código-fonte e implantação rápida de aplicativos em contêineres.

Steve Bonisteel Kinsta

Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.