Docker Guia Rápido
Alguns parâmetros comuns de comandos do Docker
Conteúdo da página
Aqui está uma folha de dicas do Docker que abrange os comandos mais importantes e conceitos desde a instalação até a execução de contêineres e limpeza:
Instalação
No Ubuntu
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker
Instalação do Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Comandos Gerais do Docker
Versão e Informações do Sistema
docker version # Exibe as versões do CLI e do daemon do Docker
docker system info # Lista dados sobre o seu ambiente do Docker
docker help # Visualize o índice de ajuda
docker <command> --help # Visualize informações de ajuda para um comando específico
Login e Logout
docker login # Faça login no Docker Hub
docker logout # Faça logout do Docker Hub
Gerenciamento de Imagens
Listar Imagens
docker images # Lista todas as imagens
docker images -a # Lista todas as imagens, incluindo imagens intermediárias
Puxar Imagens
docker pull <image-name:version> # Baixe uma imagem do Docker Hub
Construir Imagens
docker build -t <image-name> . # Construa uma imagem a partir do Dockerfile do diretório atual
docker build -f <Dockerfile-path> -t <image-name> . # Construa uma imagem a partir de um Dockerfile específico
docker build --build-arg foo=bar . # Construa uma imagem com argumentos de construção
docker build --pull . # Puxe versões atualizadas de imagens referenciadas nas instruções FROM
docker build --quiet . # Construa uma imagem sem emitir saída
Tag e Push de Imagens
docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>
Remover Imagens
docker rmi <image-name> # Remova uma imagem específica
docker image prune # Remova imagens não utilizadas
docker image prune -a # Remova todas as imagens não utilizadas
Remover imagens pendentes
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Desvincular imagem
docker rmi repository/image-name:tag
Gerenciamento de Contêineres
Executar Contêineres
docker run -itd --name <container-name> <image-name> # Execute um contêiner em modo detached
docker run -it -p <host-port>:<docker-port> <image-name> # Execute um contêiner com mapeamento de porta
docker run -it --name <container-name> <image-name> # Execute um contêiner interativamente
Listar Contêineres
docker ps # Liste os contêineres em execução
docker ps -a # Liste todos os contêineres
docker ps -s # Liste os contêineres em execução com uso de CPU e memória
Iniciar, Parar e Reiniciar Contêineres
docker start <container-name> # Inicie um contêiner parado
docker stop <container-name> # Pare um contêiner em execução
docker restart <container-name> # Reinicie um contêiner
Remover Contêineres
docker rm <container-name> # Remova um contêiner parado
docker rm -f <container-name> # Remova forçadamente um contêiner
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Remova todos os contêineres
Remover todos os contêineres parados
docker container prune
Conectar-se a Contêineres
docker attach <container-name> # Conecte-se a um contêiner em execução
docker exec -it <container-name> bash # Execute um comando em um contêiner em execução interativamente
Inspecionar Contêineres
docker inspect <container-name> # Inspeccione um contêiner
docker logs <container-name> # Visualize os logs de um contêiner
docker port <container-name> # Mostre os mapeamentos de porta de um contêiner
Gerenciamento de Redes
docker network ls # Liste todas as redes
docker network create <network-name> # Crie uma nova rede
docker network rm <network-name> # Remova uma rede
Gerenciamento de Volumes
docker volume ls # Liste todos os volumes
docker volume create <volume-name> # Crie um novo volume
docker volume rm <volume-name> # Remova um volume
docker run -v <host-path>:<container-path> <image-name> # Monte um volume
Docker Compose
Comandos Básicos
docker-compose up # Inicie os serviços definidos no docker-compose.yml
docker-compose up -d # Inicie os serviços em modo detached
docker-compose down # Pare e remova os serviços
docker-compose ps # Liste os serviços em execução
docker-compose logs # Visualize os logs dos serviços
docker-compose start # Inicie os serviços
docker-compose stop # Pare os serviços
docker-compose pause # Pausar serviços
docker-compose unpause # Retomar serviços
Comandos do Dockerfile
Construir Imagem a partir do Dockerfile
docker build -t <image-name> <Dockerfile-path> # Construa uma imagem a partir de um Dockerfile
Exemplo de Dockerfile
FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]
Segurança e Segredos
Segredos do Docker
docker secret create <secret-name> <file> # Crie um segredo
docker secret ls # Liste todos os segredos
docker secret rm <secret-name> # Remova um segredo
Segurança do Docker
- Use segredos do Docker para gerenciar centralmente dados sensíveis e transmiti-los de forma segura para contêineres.
- Os segredos são criptografados durante a transmissão e em repouso em um swarm do Docker.
Limpeza
Remover Recursos Não Utilizados
docker system prune # Remova dados não utilizados (imagens, contêineres, redes, volumes)
docker image prune # Remova imagens não utilizadas
docker container prune # Remova contêineres não utilizados
docker network prune # Remova redes não utilizadas
docker volume prune # Remova volumes não utilizados
Remover imagens sem etiqueta
Às vezes, após uma compilação bem-sucedida, há uma imagem como esta proveniente do comando docker images
:
para remover essas imagens com etiquetas
docker rmi $(docker images --filter “dangling=true” -q --no-trunc)
o acima está obsoleto e incompatível. Use
docker system prune
ele perguntará:
AVISO! Isso removerá:
- todos os contêineres parados
- todos os volumes não utilizados por pelo menos um contêiner
- todas as redes não utilizadas por pelo menos um contêiner
- todas as imagens pendentes
você pode decidir dizer sim a esse aviso…
Esta folha de dicas abrange os comandos e conceitos essenciais necessários para gerenciar contêineres, imagens, redes, volumes e muito mais do Docker. Para uma imersão mais profunda, consulte os guias e tutoriais detalhados disponíveis online.
Links Úteis
- Folha de Dicas do Python
- Folha de Dicas do Conda
- Folha de Dicas do Bash
- Folha de Dicas do Ollama
- Folha de Dicas do Kubernetes
- Codificação e Decodificação Base64 no Windows, Linux e Mac
- Instale o Portainer no Linux
- Reinstale o Linux
- Como iniciar janelas do terminal em grade no Linux Mint e Ubuntu
- MinIO como alternativa ao AWS S3. Visão geral e instalação do MinIO
- Folha de Dicas dos Parâmetros de Linha de Comando do MinIO