docker
komovo · website-7c8b549745-qfbjf
sections
container lifecycle image management docker compose exec & logs networking cleanup & maintenancecontainer lifecycle
bash# run a container (interactive)
docker run -it --rm alpine:latest /bin/sh
# run detached with port mapping
docker run -d --name nginx -p 8080:80 nginx:alpine
# list running containers
docker ps
# list all containers (including stopped)
docker ps -a
# stop / start / restart
docker stop nginx
docker start nginx
docker restart nginx
# remove a container
docker rm nginx
image management
bash# list images
docker images
# pull an image
docker pull alpine:latest
# remove unused images
docker image prune
# remove all unused images, containers, networks
docker system prune -a
# build from Dockerfile
docker build -t myapp:latest .
# tag and push
docker tag myapp:latest ghcr.io/user/myapp:latest
docker push ghcr.io/user/myapp:latest
# inspect image layers
docker history myapp:latest
docker compose
bash# start services
docker compose up -d
# stop services
docker compose down
# rebuild and start
docker compose up -d --build
# view logs
docker compose logs -f
# restart specific service
docker compose restart service-name
# list running compose projects
docker compose ls
exec & logs
bash# exec into a running container
docker exec -it container-name /bin/sh
# run a single command
docker exec container-name cat /etc/os-release
# tail logs
docker logs -f container-name
# last 50 lines
docker logs --tail 50 container-name
# copy files to/from container
docker cp /local/file container-name:/path
docker cp container-name:/path /local/file
networking
bash# list networks
docker network ls
# inspect network
docker network inspect bridge
# create custom network
docker network create mynet
# run container on specific network
docker run --network mynet --name app alpine
# connect/disconnect running container
docker network connect mynet container-name
docker network disconnect mynet container-name
# port mapping inspection
docker port container-name
cleanup & maintenance
bash# remove all stopped containers
docker container prune
# remove all unused images
docker image prune -a
# remove all unused volumes
docker volume prune
# remove EVERYTHING unused (containers, images, networks, volumes)
docker system prune -a --volumes
# view disk usage
docker system df
# view stats for running containers
docker stats
# top process in container
docker top container-name