Docker
Containers
# Run
docker run <image>
docker run -d <image> # detached
docker run -p 8080:80 nginx # port mapping host:container
docker run -e DB_HOST=localhost # env var
docker run -it ubuntu /bin/bash # interactive
docker run --rm <image> # auto-remove when stopped
docker run --name my-app <image> # named
# List
docker ps # running
docker ps -a # all
# Stop/kill/remove
docker stop <id>
docker kill <id>
docker rm <id>
docker container prune # remove all stopped
# Logs
docker logs <id>
docker logs -f <id> # follow
# Shell into running container
docker exec -it <id> /bin/bash
docker exec -it <id> /bin/sh # if no bashImages
# List
docker images
# Pull
docker pull nginx:latest
# Build
docker build -t myapp:v1 .
docker build -f Dockerfile.prod -t myapp:prod .
# Remove
docker rmi <image_id>
docker image prune # unused
docker image prune -a # ALL unused
# Tag and push
docker tag myapp:v1 registry.com/myapp:v1
docker push registry.com/myapp:v1Volumes
# Mount host directory
docker run -v /host/path:/container/path <image>
# Named volume
docker run -v mydata:/container/path <image>
# List
docker volume ls
# Cleanup
docker volume pruneDocker Compose
docker-compose up
docker-compose up -d # detached
docker-compose down
docker-compose down -v # remove volumes too
docker-compose up --build # rebuild
docker-compose logs -f
docker-compose exec web bash
docker-compose up -d --scale worker=3Debugging
docker inspect <id>
docker stats
docker history <image>
docker cp <container>:/path/file ./localCleanup
# Nuclear option
docker system prune -a --volumes
# See disk usage
docker system df