
Introdução
Docker é uma plataforma amplamente utilizada para empacotar, distribuir e executar aplicações dentro de containers. Este artigo reúne os comandos essenciais e práticas recomendadas para operar o Docker de forma eficiente, desde a instalação até a orquestração com Docker Compose.
1. Instalação do Docker Desktop no Windows
Antes de começar a usar o Docker no Windows, é necessário instalar o Docker Desktop, que fornece uma interface gráfica e o ambiente de execução do Docker Engine.
Pré-requisitos
- Sistema operacional: Windows 10 ou 11 (64 bits) com suporte a virtualização.
- Virtualização habilitada na BIOS/UEFI.
- Conta administrativa no Windows.
- Subsystem for Linux 2 (WSL 2) instalado (Docker Desktop pode instalar automaticamente se necessário).
Etapas de Instalação
- Acesse o site oficial: https://www.docker.com/products/docker-desktop/
- Clique em “Download for Windows” e aguarde o término do download.
- Execute o instalador baixado (
Docker Desktop Installer.exe
). - Marque as opções recomendadas, como:
- Habilitar WSL 2
- Instalar como administrador
- Após a instalação, reinicie o computador se solicitado.
- Abra o Docker Desktop. Ao iniciar pela primeira vez, ele pode solicitar permissões para integração com WSL.
- Verifique se o Docker foi iniciado com sucesso: o ícone da baleia aparecerá na bandeja do sistema (systray).
2. Verificação e Gerenciamento de Containers
Verificando a Instalação
Para verificar se o Docker está corretamente instalado:
docker -v
Listando Containers
Ativos apenas:docker ps
Todos (ativos e inativos):
docker ps -a
3. Executando Containers
Executar Ubuntu com Bash Interativo
docker run -it ubuntu:24.04 /bin/bash
Mapeando Porta para Aplicação Web
docker run -it -p 8000:80 ubuntu:24.04 /bin/bash
Persistência e Controle de Sessão
- Sair sem encerrar o container:
Ctrl + P + Q
- Encerrar e sair:
Ctrl + D
Reiniciar container:
docker start <container-id>
Acessar container em execução:
docker attach
docker exec -it sh # ou bash
4. Manipulação de Containers e Imagens
Renomear Containers
docker rename <nome-atual> <novo-nome>
Remoção de Containers
Individual:
docker rm -f
Múltiplos:
docker rm -f <id-1> <id-2> <id-3>
Visualização e Remoção de Imagens
Listar imagens:
docker images
Remover imagem:
docker rmi -f <image-id>
5. Volumes e Persistência de Dados
Para montar volumes e garantir persistência:
docker run -it -p 8000:80 -v C:\projects\docker\volume:/var/www/html ubuntu:24.04 /bin/bash
O parâmetro -v conecta um diretório do host com um diretório do container, permitindo armazenamento persistente mesmo após o encerramento do container.
6. Versionamento com Docker Hub
Criar nova imagem com alterações:
docker commit <container-id> <usuário>/<nome-imagem>:<tag>
Enviar para Docker Hub:
docker push <usuário>/<nome-imagem>:<tag>
Exemplo de como ficou no terminal:

Imagem criada e salva no Docker Hub:

Agora é possivel reutilizar a imagem executando o seguinte comando:
docker run -it fehliimaa1e622c5f073b:1.0 /bin/bash
Ou caso queira criar com a porta 80 habiiltada:
docker run -it -p 8000:80 -v /home/felipe/projects/docker/volume:/var/www/html ubuntu:24.04 /bin/bash

No exemplo acima, estou executando o comando no Linux. Se você estiver usando o Windows, o comando equivalente será algo como:
docker run -it -p 8000:80 -v C:\projects\docker\volume:/var/www/html ubuntu:24.04 /bin/bash
7. Dockerfile: Automatizando a Criação de Imagens
Exemplo de Dockerfile com Apache, PHP, MySQL e Composer
FROM ubuntu:24.04
ENV timezone=America/Sao_Paulo
RUN apt-get update && \
ln -snf /usr/share/zoneinfo/${timezone} /etc/localtime && echo ${timezone} > /etc/timezone && \
apt-get install -y apache2 php php-xdebug php8.0-mysql && \
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && chmod +x /usr/local/bin/composer
EXPOSE 80
WORKDIR /var/www/html
ENTRYPOINT /etc/init.d/apache2 start && /bin/bash
CMD [ "true" ]
Construção da Imagem
docker build . -t meu-webserver
8. Orquestração com Docker Compose
Estrutura Básica do docker-compose.yml
version: "3"
services:
db:
image: mariadb:10.4
environment:
- MYSQL_USER=root
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=laravel
ports:
- "8011:3306"
volumes:
- ./db_data:/etc/mysql/conf.d
app:
image: felipelima285/webserver:1.0
volumes:
- ./:/var/www/html
ports:
- "8010:80"
depends_on:
- db
tty: true
Comandos Úteis
Subir containers:
docker-compose up --build -d
Parar e remover containers:
docker-compose down
Ver logs:
docker-compose logs -f
Conclusão
Este artigo apresentou um panorama abrangente dos principais comandos e práticas recomendadas para o uso do Docker em ambientes de desenvolvimento e produção. Com a utilização de containers, Dockerfiles e orquestração via Docker Compose, é possível criar ambientes reproduzíveis, escaláveis e eficientes para qualquer aplicação.
Seja o primeiro a comentar