Docker Cheat Sheet: Guia de Referência com Comandos Básicos – Códigos Prontos para Usar
Docker é uma plataforma de código-aberto muito popular, utilizada para facilitar os processos de desenvolvimento, teste, lançamento e gerenciamento de aplicações em containers. A plataforma pode ser utilizada em ambientes consistentes, portáteis ou virtuais, como um Servidor Virtual Privado (VPS – Virtual Private Server).
Por ser uma importante ferramenta de um arsenal de recursos para o desenvolvimento de aplicações, aprender os diferentes comandos Docker pode consumir bastante tempo e esforço. Geralmente, os novos usuários tendem a trabalhar com uma “colinha” por perto, isto é, ter uma cheat sheet dos principais comandos Docker representa um benefício significativo para o desenvolvimento de seus projetos.
Neste tutorial, vamos explicar como o Docker funciona. Depois, vamos apresentar os principais comandos que os usuários utilizam nessa plataforma. Vamos lá!
Conteúdo
Arquitetura da Plataforma Docker
A arquitetura do Docker consiste em cinco principais componentes: servidor, cliente, container, imagem e registro.
Servidor Docker
Um servidor (server) ou daemon Docker é um programa que roda no “plano de fundo” do seu computador ou máquina, e que faz o gerenciamento dos containers e imagens do Docker. Quando você usa a interface de linha de comando do Docker (CLI – command line interface) para criar, rodar ou gerenciar containers, está interagindo com o daemon Docker.
O servidor ou daemon é um componente essencial da plataforma Docker, garantindo que os containers poderão ser inicializados e pausados automaticamente quando o sistema é ligado.
Cliente Docker
Um cliente (client) Docker permite que os usuários interajam com o daemon Docker através da interface de linha de comando (CLI). Simplificando, essa é a principal parte da arquitetura Docker para criar, gerenciar e rodar aplicações containers. Quando você utiliza o CLI Docker para rodar um comando, o cliente Docker envia o comando ao daemon Docker rodando em seu computador. Ele, então, realiza a operação solicitada. O cliente Docker pode pode ser instalado em qualquer dispositivo que precise interagir com o Docker daemon, incluindo sua máquina local, um servidor remoto ou um servidor virtual.
Container Docker
Um container Docker é um pacote que contém todos os pré-requisitos necessários para rodar uma aplicação.
Containers são desenvolvidos para serem altamente portáteis, isso quer dizer que eles podem ser facilmente movidos de um ambiente para outro – por exemplo, do computador de um desenvolvedor para um ambiente de teste, ou de um ambiente de teste para um ambiente de produção.
Imagem Docker
Uma imagem (image) Docker é um modelo pré-configurado que especifica o que deve ser incluído em um container Docker, ou seja, representa estaticamente as configurações do aplicativo desenvolvido. Uma imagem Docker contém o código da aplicação, bibliotecas, dependências e outros elementos necessários para que o produto seja executado.
Geralmente, as imagens podem ser baixadas a partir de sites como o Docker Hub. De todo modo, também é possível criar uma imagem personalizada com a ajuda da ferramenta Dockerfile.
Registro Docker
O registro (registry) Docker é um repositório central que armazena e faz a gestão de imagens. Trata-se de um sistema server-based que permite aos usuários armazenar e compartilhar imagens Docker com outros, facilitando a distribuição e o lançamento de aplicações. O registry mais notável do Docker é o Docker Hub.
Cheat Sheet: Guia de Comandos Docker
Agora que você já sabe como a plataforma Docker funciona, vamos conferir alguns dos exemplos de comandos Docker mais populares.
Comandos de Construção
O Docker utiliza o comando “build” (construção) para criar imagens a partir de um arquivo Docker. Alguns dos comandos mais comuns dessa categoria incluem:
Comando | Explicação |
docker build | Constrói uma imagem a partir de um Dockerfile (arquivo Docker) no diretório atual |
docker build https://github.com/docker/rootfs.git#container:docker | Constrói uma imagem a partir de um repositório GIT remoto |
docker build -t imagename/tag | Constrói e identifica uma imagem, identificando-a com uma tag, para facilitar o monitoramento |
docker build https://yourserver/file.tar.gz | Constrói uma imagem a partir de um arquivo tar remoto |
docker build -t image:1.0-<<EOFFROM busyboxRUN echo “hello world”EOF | Constrói uma imagem a partir de um Dockerfile (arquivo Docker) que é enviado via STDIN |
Comandos de Limpeza
Limpar ou remover imagens, containers e volumes não utilizados é uma ótima maneira de economizar espaço em disco e manter seu sistema limpo e bem organizado. Confira abaixo alguns exemplos do comando de natureza “clean up”:
Comando | Explicação |
docker image prune | Remove uma imagem que não está sendo utilizada |
docker image prune -a | Remove todas as imagens que não estão sendo usadas por containers |
docker system prune | Remove todos os containers pausados (stopped containers), todo o cache de construção (build cache), todas as redes (networks) não utilizadas por containers e todas as imagens sem tags (dangling images) |
docker image rm image | Remove uma imagem |
docker rm container | Remove um container que está rodando |
docker kill $ (docker ps -q) | Pausa todos os containers que estão rodando |
docker swarm leave | Sai do modo swarm |
docker stack rm stackname | Remove um swarm |
docker volume rm $(docker volume ls -f dangling=true -q) | Remove todos os volumes sem tags (dangling volumes) |
docker rm $(docker ps -a -q) | Remove todos os containers pausados |
Comandos de Interação com Container
Interaja com seu container Docker através dos comandos mais populares, como:
Comando | Explicação |
docker start container | Inicia um novo container |
docker stop container | Encerra (stop) um container |
docker pause container | Pausa um container |
docker unpause container | Encerra a pausa de um container |
docker restart container | Reinicia um container |
docker wait container | Bloqueia um container |
docker export container | Exporta conteúdos de um container para um arquivo tar |
docker attach container | Anexa conteúdo a um container que já está rodando (running container) |
docker wait container | Coloca processo em aguardo até que o container esteja terminado e enem exibe o exit code (código de saída) |
docker commit -m “commit message” -a “author” container username/image_name: tag | Salva um container que está rodando em formato de imagem |
docker logs -ft container | Acompanha logs de um container (registros) |
docker exec -ti container script.sh | Roda um comando em um container |
docker commit container image | Cria uma nova imagem a partir de um container |
docker create image | Cria um novo container a partir de uma imagem |
Comandos de Inspeção de Container
Às vezes, você pode precisar inspecionar (inspect) seus containers para garantir a qualidade ou para resolver alguma falha. Os comandos indicados abaixo te ajudam a entender melhor o que diferentes containers estão rodando:
Comando | Explicação |
docker ps | Lista todos os containers que estão rodando (running containers) |
docker -ps -a | Lista todos os containers |
docker diff container | Inspeciona alterações em diretórios e arquivos do sistema de arquivos do container |
docker top container | Exibe todos os processos que estão rodando em um container ativo |
docker inspect container | Exibe informações básicas (low-level information) sobre um container |
docker logs container | Reúne os registros (logs) de um container |
docker stats container | Exibe as estatísticas de consumo de recursos de um container |
Comandos de Gerenciamento de Imagens
Alguns dos comandos mais populares para administrar Docker images incluem:
Comando | Explicação |
docker image ls | Lista imagens |
docker image rm mysql | Remove uma imagem |
docker tag image tag | Rotula uma imagem (insere tag) |
docker history image | Exibe o histórico de uma imagem |
docker inspect image | Exibe informações básicas (low-level information) de uma imagem |
Comandos “Run”
A plataforma Docker utiliza o comando run (rodar) para criar containers a partir de imagens Docker. A sintaxe padrão para comandos dessa natureza está indicada abaixo:
docker run (options) image (command) (arg…)
Depois da sintaxe padrão, utilize uma das seguintes flags para rodar o comando:
Flag | Explicação |
–detach , -d | Roda um container no plano de fundo (background) e imprime a ID do container |
–env , -e | Define variáveis de ambiente |
–hostname , -h | Configura um hostname para um container |
–label , -l | Cria uma etiqueta (label) de metadados para um container |
–name | Atribui um nome a um container |
–network | Conecta um container a uma rede (network) |
–rm | Remove um container quando ele é encerrado |
–read-only | Define o modo de “apenas leitura” para o sistema de arquivos do container (filesystem read-only) |
–workdir , -w | Configura um diretório de trabalho em um container |
Comandos de Registro
Caso você precise interagir com o Docker Hub, use alguns dos seguintes comandos:
Comando | Explicação |
docker login | Faz o login em um registro |
docker logout | Faz o logout de um registry |
docker pull mysql | Traz ou busca uma imagem de um registro (pull) |
docker push repo/ rhel-httpd:latest | Envia ou leva uma imagem a um registry (push) |
docker search term | Faz uma pesquisa no Docker Hub em busca de imagens com o termo especificado (term) |
Comandos de Serviço
Gerencie todos os serviços Docker com apenas alguns desses comandos básicos:
Comando | Explicação |
docker service ls | Lista todos os serviços que estão rodando em um swarm |
docker stack services stackname | Lista todos os serviços que estão rodando |
docker service ps servicename | Lista a tarefa (task) de um serviço |
docker service update servicename | Atualiza um serviço |
docker service create image | Cria um novo serviço |
docker service scale servicename=10 | Dimensiona um ou mais serviços replicados |
docker service logs stackname servicename | Lista todos os registros (logs) de serviços |
Comandos de Rede
Se você precisa interagir com a rede Docker, pode utilizar um comando de natureza “network”, como os apresentados a seguir:
Comando | Explicação |
docker network create networkname | Cria uma nova rede (new network) |
docker network rm networkname | Remove uma rede específica |
docker network ls | Lista todas as redes |
docker network connect networkname container | Conecta um container a uma rede |
docker network disconnect networkname container | Desconecta um container de uma rede |
docker network inspect networkname | Exibe informações detalhadas sobre a rede (network) |
Sugestões de Leitura
Confira outros tutoriais produzidos pela equipe da Hostinger sobre a plataforma de container Docker:
Como Instalar e Configurar o Docker no Ubuntu
Como Remover Docker e suas Imagens, Containers e Volumes
Como Instalar WordPress no Docker (Windows, MacOS e Linux)
Aprenda a Iniciar um Container Docker
Como Instalar Docker no CentOS + Docker Compose
Conclusão
O Docker é uma excelente ferramenta para qualquer usuário que deseja usar containers. A curva de aprendizado inicial pode ser mais difícil caso você não tenha familiaridade com desenvolvimento baseado em container. Felizmente, ter um guia – como esta cheat sheet – em mãos pode acelerar consideravelmente esse processo. Isso porque todos os comandos mais populares estarão facilmente ao seu alcance, sem que você precise pesquisar cada um individualmente em fóruns ou extensas documentações na internet.
Neste guia, apresentamos os elementos básicos da infraestrutura do Docker e, depois, listamos alguns dos mais populares comandos Docker básicos.
Esperamos que este tutorial sobre Docker tenha sido útil para você. Caso ainda tenha alguma questão, deixe um comentário com sua dúvida na seção abaixo.