Instalando Docker e rodando seu primeiro container
1. Pré-requisitos e preparação do ambiente
Antes de instalar o Docker, é fundamental verificar se seu sistema atende aos requisitos mínimos. O Docker Engine funciona nativamente em distribuições Linux com kernel versão 3.10 ou superior. Para verificar sua distribuição e versão do kernel, execute:
cat /etc/os-release
uname -r
Caso você tenha versões antigas do Docker instaladas (como docker.io, docker-engine ou docker-ce de repositórios não oficiais), remova-as antes de prosseguir:
sudo apt-get remove docker docker-engine docker.io containerd runc
Em seguida, atualize os pacotes do sistema e instale as dependências necessárias para adicionar o repositório oficial do Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
Essas ferramentas são essenciais: ca-certificates gerencia certificados SSL, curl permite baixar arquivos da web, gnupg lida com chaves de criptografia e lsb-release identifica a versão da distribuição.
2. Instalação do Docker Engine
Com as dependências instaladas, adicione a chave GPG oficial do Docker e configure o repositório:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Atualize novamente a lista de pacotes e instale os componentes principais do Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Os pacotes instalados são: docker-ce (Docker Engine), docker-ce-cli (interface de linha de comando) e containerd.io (runtime de containers). Após a instalação, verifique se tudo ocorreu corretamente:
docker --version
A saída deve mostrar algo como Docker version 24.0.7, build afdd53b.
3. Configurações pós-instalação
Para que o Docker inicie automaticamente com o sistema e funcione corretamente, habilite e inicie o serviço:
sudo systemctl start docker
sudo systemctl enable docker
Por padrão, o Docker requer privilégios de superusuário. Para executar comandos Docker sem sudo, adicione seu usuário ao grupo docker:
sudo usermod -aG docker $USER
Após executar esse comando, faça logout e login novamente (ou reinicie a sessão) para que as alterações tenham efeito. Teste a instalação com o container clássico de verificação:
docker run hello-world
Se tudo estiver correto, você verá uma mensagem de boas-vindas do Docker confirmando que a instalação funcionou.
4. Comandos essenciais do Docker
Dominar os comandos básicos é crucial para trabalhar com Docker. Vamos explorar os mais importantes:
Gerenciando imagens
docker images # Lista imagens baixadas
docker pull nginx # Baixa a imagem do Nginx
docker pull ubuntu:22.04 # Baixa versão específica do Ubuntu
docker rmi nginx # Remove uma imagem
Gerenciando containers
docker ps # Lista containers em execução
docker ps -a # Lista todos os containers (incluindo parados)
docker run nginx # Cria e inicia um container
docker run -d nginx # Executa em background (detached)
docker stop container_id # Para um container
docker start container_id # Inicia um container parado
docker rm container_id # Remove um container
Logs e inspeção
docker logs container_id # Exibe logs do container
docker inspect container_id # Informações detalhadas do container
docker exec -it container_id bash # Acessa o terminal do container
5. Rodando seu primeiro container: Nginx
Vamos colocar a mão na massa com um exemplo prático: rodar um servidor web Nginx. Primeiro, baixe a imagem oficial:
docker pull nginx
Agora, execute o container em modo detached (background) mapeando a porta 80 do host para a porta 80 do container:
docker run -d -p 80:80 --name meu-nginx nginx
O parâmetro -d executa em background, -p 80:80 faz o mapeamento de portas e --name dá um nome amigável ao container. Para verificar se o servidor está rodando:
docker ps
Acesse http://localhost no navegador ou use curl:
curl localhost
Você verá a página padrão do Nginx. Para parar e remover o container:
docker stop meu-nginx
docker rm meu-nginx
6. Trabalhando com containers em primeiro plano
Nem sempre queremos executar containers em background. O modo interativo permite explorar e modificar o ambiente interno. Execute um container Ubuntu com bash:
docker run -it ubuntu bash
Os parâmetros -it combinam -i (modo interativo) e -t (aloca um terminal). Dentro do container, você pode explorar o sistema de arquivos e instalar pacotes:
root@abc123:/# cat /etc/os-release
root@abc123:/# apt-get update
root@abc123:/# apt-get install vim -y
root@abc123:/# exit
Diferença entre -it e -d:
-it(interativo): Mantém o terminal aberto, permitindo comandos em tempo real. Ideal para debugging e desenvolvimento.-d(detached): Executa em background, liberando o terminal. Ideal para serviços em produção.
Ao sair do container interativo com exit, ele será parado automaticamente. Para mantê-lo rodando em background após usar -it, pressione Ctrl+P seguido de Ctrl+Q.
7. Boas práticas e próximos passos
Limpando recursos não utilizados
Com o tempo, containers parados e imagens não utilizadas acumulam espaço. Use o comando de limpeza:
docker system prune -a
Esse comando remove todos os containers parados, imagens não utilizadas e redes órfãs. Adicione -f para forçar sem confirmação.
Introdução ao Docker Compose
Para ambientes multi-container (como uma aplicação web com banco de dados), o Docker Compose simplifica a configuração. Exemplo básico de docker-compose.yml:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: exemplo
Execute com docker-compose up -d.
Preparação para o próximo artigo
No próximo artigo, aprenderemos a escrever nosso primeiro Dockerfile. Com ele, você poderá criar imagens personalizadas para suas aplicações, definindo exatamente o ambiente de execução, dependências e configurações necessárias.
O Docker revolucionou a forma como desenvolvemos, testamos e implantamos aplicações. Com a instalação concluída e os primeiros containers rodando, você já tem a base para explorar todo o ecossistema de containers e orquestração com Kubernetes.
Referências
- Documentação oficial de instalação do Docker Engine — Guia completo para instalar o Docker em Ubuntu, incluindo métodos alternativos e solução de problemas.
- docker/getting-started — Tutorial interativo oficial da Docker para iniciantes, com exemplos práticos de containers.
- Comandos essenciais do Docker — Referência completa de todos os comandos da CLI do Docker, com exemplos e opções.
- Guia de Docker Compose — Tutorial oficial para começar com ambientes multi-container usando Docker Compose.
- Docker Hub - Imagem oficial do Nginx — Repositório oficial da imagem Nginx no Docker Hub, com documentação de uso e variáveis de ambiente.
- Práticas recomendadas para Dockerfile — Guia oficial com boas práticas para escrever Dockerfiles eficientes e seguros.
- DigitalOcean - Como instalar e usar Docker — Tutorial prático e detalhado da DigitalOcean sobre instalação e comandos básicos do Docker.