Docker containers & registry
dockerbuildrun
🏗️ Build & Run
| Build imagem | docker build -t minha-app:1.0 . |
| Run container | docker run -d -p 8080:8080 --name app minha-app:1.0 |
| Run com env vars | docker run -e DB_URL=postgres://... minha-app |
| Run interativo (debug) | docker run -it --rm ubuntu bash |
| Entrar em container rodando | docker exec -it app bash |
| Logs do container | docker logs -f app |
| Parar container | docker stop app |
📦 Registry & Images
| Login no registry | docker login gcr.io |
| Push imagem | docker push gcr.io/PROJETO/minha-app:1.0 |
| Pull imagem | docker pull nginx:alpine |
| Listar imagens locais | docker images |
| Remover imagem | docker rmi minha-app:1.0 |
| Tag para registry | docker tag minha-app:1.0 gcr.io/PROJETO/minha-app:1.0 |
| Buscar imagens | docker search nginx |
🧹 Limpeza & Volumes
| Listar containers | docker ps -a |
| Remover container parado | docker rm app |
| Remover todos os parados | docker container prune |
| Limpar imagens não usadas | docker image prune |
| Criar volume | docker volume create meu-volume |
| Mount volume | docker run -v meu-volume:/data minha-app |
| Bind mount (host) | docker run -v /host/path:/container/path minha-app |
🐙 Docker Compose
| Subir serviços | docker-compose up -d |
| Parar serviços | docker-compose down |
| Ver logs | docker-compose logs -f |
| Rebuild e subir | docker-compose up --build |
| Escalar serviço | docker-compose up -d --scale web=3 |
| Executar comando | docker-compose exec web bash |
🚨 Erros Frequentes & Fixes
| Cannot connect to the Docker daemon | Docker não está rodando. Inicie: sudo systemctl start docker ou no macOS: abra Docker Desktop. |
| Permission denied | Adicione seu usuário ao grupo docker: sudo usermod -aG docker $USER e faça logout/login. |
| Port already in use | Mude a porta do host: docker run -p 8081:8080 ... ou pare o processo usando a porta: sudo lsof -i :8080. |
| No space left on device | Limpe containers/imagens: docker system prune -a. Verifique espaço: df -h. |
| exec user process caused "no such file or directory" | Problema de line endings no Windows. Use dos2unix no Dockerfile ou clone com git config core.autocrlf false. |