docker

komovo · website-7c8b549745-qfbjf

container 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