wiki:linux:comandos:docker
Table of Contents
Gerenciamento do Docker - Nível Básico
Nível Básico
- Verificar a versão do Docker instalada:
docker --version
- Exibe a versão do Docker instalada no sistema.
- Listar os containers em execução:
docker ps
- Mostra uma lista dos containers que estão atualmente em execução.
- Listar todos os containers (em execução e parados):
docker ps -a
- Exibe todos os containers, incluindo os que já foram executados e pararam.
- Listar as imagens Docker disponíveis:
docker images
- Exibe uma lista de todas as imagens disponíveis localmente no sistema.
- Iniciar um container baseado em uma imagem:
docker run -d nginx
- Inicia um container da imagem nginx em segundo plano (`-d` para detached mode).
- Executar um container interativamente:
docker run -it ubuntu /bin/bash
- Inicia um container Ubuntu interativo (`-it` para modo interativo) e abre um shell bash no container.
- Parar um container em execução:
docker stop nome_do_container
- Para um container em execução, identificando-o pelo nome ou ID.
- Remover um container parado:
docker rm nome_do_container
- Remove um container que não está mais em execução.
- Remover uma imagem Docker:
docker rmi nome_da_imagem
- Remove uma imagem Docker do sistema local.
- Obter logs de um container em execução:
docker logs nome_do_container
- Exibe os logs do container especificado, permitindo visualizar a saída do processo dentro do container.
- Inspecionar um container para obter detalhes:
docker inspect nome_do_container
- Exibe informações detalhadas sobre um container, incluindo configurações de rede, volumes e variáveis de ambiente.
- Iniciar um container parado:
docker start nome_do_container
- Inicia um container que foi previamente parado.
- Acessar um container em execução:
docker exec -it nome_do_container /bin/bash
- Abre um shell bash interativo dentro de um container que já está em execução.
- Remover todos os containers parados de uma vez:
docker container prune
- Remove todos os containers parados do sistema, liberando espaço.
- Obter ajuda sobre os comandos do Docker:
docker --help
- Exibe o menu de ajuda com a lista de comandos disponíveis do Docker.
Gerenciamento do Docker - Nível Intermediário
Nível Intermediário
- Criar e utilizar volumes Docker para persistência de dados:
docker volume create meu_volume
- Cria um volume persistente chamado meu_volume, que pode ser usado por containers.
- Montar um volume em um container:
docker run -d -v meu_volume:/var/www/html nginx
- Inicia um container nginx e monta o volume meu_volume no diretório `/var/www/html` do container, permitindo que dados persistam mesmo após a remoção do container.
- Listar todos os volumes criados:
docker volume ls
- Exibe uma lista de todos os volumes Docker disponíveis.
- Remover volumes não utilizados:
docker volume prune
- Remove todos os volumes que não estão sendo usados por nenhum container, liberando espaço no sistema.
- Criar uma rede personalizada no Docker:
docker network create minha_rede
- Cria uma rede bridge chamada minha_rede que pode ser usada para conectar containers.
- Conectar um container a uma rede específica:
docker run -d --network minha_rede nginx
- Inicia um container nginx e conecta-o à rede minha_rede, permitindo que ele interaja com outros containers na mesma rede.
- Listar todas as redes Docker disponíveis:
docker network ls
- Exibe uma lista de todas as redes Docker criadas.
- Inspecionar uma rede Docker para obter detalhes:
docker network inspect minha_rede
- Exibe informações detalhadas sobre a rede minha_rede, incluindo containers conectados, configuração de IP e outras propriedades.
- Desconectar um container de uma rede:
docker network disconnect minha_rede nome_do_container
- Remove o container nome_do_container da rede minha_rede, mantendo o container em execução.
- Limitar o uso de CPU e memória de um container:
- Limitar a CPU a 50%:
docker run -d --cpus="0.5" nginx
- Limitar a memória a 256MB:
docker run -d --memory="256m" nginx
- Esses comandos iniciam containers nginx limitando o uso de CPU e memória, ajudando a controlar os recursos consumidos.
- Executar um container com prioridade de CPU (shares):
docker run -d --cpu-shares 512 nginx
- Executa um container nginx com prioridade de CPU ajustada, onde 512 indica que o container receberá mais CPU que um container com shares padrão (1024 é o padrão).
- Limitar o uso de I/O no disco de um container:
docker run -d --device-read-bps /dev/sda:1mb --device-write-bps /dev/sda:1mb nginx
- Limita a taxa de leitura e gravação no dispositivo `/dev/sda` a 1MB/s, controlando o uso de I/O do container.
- Renomear um container existente:
docker rename container_antigo container_novo
- Renomeia o container container_antigo para container_novo, mantendo o container em execução.
- Verificar o uso de recursos (CPU, memória, rede, I/O) de containers:
docker stats
- Mostra em tempo real o uso de CPU, memória, rede e I/O de todos os containers em execução.
- Verificar o histórico de uma imagem Docker:
docker history nome_da_imagem
- Exibe o histórico de camadas de uma imagem Docker, incluindo comandos utilizados para a construção da imagem.
- Efetuar login no Docker Hub para baixar imagens privadas:
docker login
- Realiza o login no Docker Hub (ou em outro registro Docker) para permitir o download de imagens privadas.
- Fazer o pull de uma imagem privada de um repositório:
docker pull nome_do_usuario/imagem_privada
- Baixa uma imagem privada de um repositório após efetuar o login no Docker Hub.
Gerenciamento do Docker - Nível Avançado
Nível Avançado
- Construir uma imagem Docker personalizada com um Dockerfile:
- Criar um Dockerfile básico:
```
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
COPY ./meu_arquivo.html /var/www/html/index.html
CMD ["nginx", "-g", "daemon off;"]
```
- **Construir a imagem:**
<code>docker build -t minha_imagem_customizada .</code>
- Cria uma imagem personalizada chamada **minha_imagem_customizada** com base em um **Dockerfile**, que instala o **nginx** e copia um arquivo HTML.
- Listar as camadas de uma imagem Docker:
docker history minha_imagem_customizada
- Exibe todas as camadas de uma imagem, mostrando quais comandos foram utilizados para construí-la.
- Executar uma imagem com variáveis de ambiente personalizadas:
docker run -d -e VAR1=valor1 -e VAR2=valor2 minha_imagem_customizada
- Inicia um container da imagem minha_imagem_customizada com as variáveis de ambiente VAR1 e VAR2 definidas.
- Criar e usar um arquivo `.env` para variáveis de ambiente:
- Exemplo de arquivo `.env`:
```
MYSQL_USER=user
MYSQL_PASSWORD=secret
```
- **Executar o container utilizando o `.env`:**
<code>docker run --env-file .env mysql</code>
- Utiliza um arquivo **`.env`** para definir variáveis de ambiente no container **MySQL**.
- Criar uma rede Docker entre múltiplos containers (Docker Compose):
- Criar um arquivo `docker-compose.yml`:
```
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: exemplo
```
- **Iniciar múltiplos containers com Docker Compose:**
<code>docker-compose up -d</code>
- Utiliza o **Docker Compose** para orquestrar e iniciar múltiplos containers (um **nginx** e um **MySQL**) com uma única configuração.
- Parar e remover containers criados com Docker Compose:
docker-compose down
- Para e remove todos os containers, redes e volumes criados pelo comando `docker-compose up`.
- Construir imagens com Docker Compose (build):
- Adicionar a seção build no `docker-compose.yml`:
```
version: '3'
services:
web:
build: .
ports:
- "80:80"
```
- **Construir e iniciar os containers:**
<code>docker-compose up --build</code>
- Utiliza o **Docker Compose** para construir uma imagem personalizada com base em um **Dockerfile** no diretório atual.
- Limitar o uso de CPU e memória em Docker Compose:
- Adicionar limites no `docker-compose.yml`:
```
version: '3'
services:
web:
image: nginx
deploy:
resources:
limits:
cpus: "0.5"
memory: "512M"
```
- Limita o uso de **CPU** e **memória** para o serviço **nginx** utilizando **Docker Compose**.
- Inspecionar a rede criada pelo Docker Compose:
docker network inspect nome_da_rede
- Exibe detalhes sobre a rede Docker Compose, incluindo os containers conectados e os IPs atribuídos.
- Iniciar um container de forma temporária para testes:
docker run --rm -it ubuntu /bin/bash
- Inicia um container Ubuntu de forma temporária com o `–rm`, garantindo que ele seja removido automaticamente após o término da execução.
- Usar volumes com Docker Compose:
- Adicionar volumes no `docker-compose.yml`:
```
version: '3'
services:
web:
image: nginx
volumes:
- meu_volume:/var/www/html
volumes:
meu_volume:
```
- Utiliza **volumes Docker** com **Docker Compose**, criando um volume chamado **meu_volume** e montando-o no diretório `/var/www/html` do **nginx**.
- Remover imagens antigas de containers não utilizados:
docker image prune
- Remove todas as imagens não utilizadas no sistema, liberando espaço.
- Remover containers, volumes e redes de forma automática:
docker system prune
- Remove todos os containers, volumes, e redes que não estão em uso, liberando espaço e limpando o ambiente Docker.
- Verificar logs de múltiplos containers com Docker Compose:
docker-compose logs
- Exibe os logs de todos os containers gerenciados pelo Docker Compose.
wiki/linux/comandos/docker.txt · Last modified: by Wiki Administrator
