# Detached + named + port + volume + envdockerrun-d\--nameapp\--restartunless-stopped\-p8080:8080\-v$(pwd)/data:/app/data\-eDB_HOST=postgres\--env-file.env\<REGISTRY>/<IMAGE>:<TAG>
# Ephemeral container, remove on exitdockerrun--rm-itubuntu:22.04bash
# Read-only filesystem (security)dockerrun--rm-it--read-only--tmpfs/tmp<IMAGE>
# Resource limitsdockerrun-d--memory=512m--cpus=0.5--pids-limit=100<IMAGE>
# Non-root override (image may be set to root user)dockerrun--user1000:1000<IMAGE>
# Select networkdockerrun--networkbridge|host|none|<NET_NAME><IMAGE>
# Set Linux capabilities (least privilege)dockerrun--cap-drop=ALL--cap-add=NET_BIND_SERVICE<IMAGE>
# Network listdockernetworkls
dockernetworkinspectbridge
# Custom networkdockernetworkcreateapp-net
dockernetworkcreate--driverbridge--subnet172.20.0.0/16app-net
# Connect container to a networkdockernetworkconnectapp-netapp
dockernetworkdisconnectbridgeapp
# DNS name resolution (automatic on custom networks)dockerrun--networkapp-net--nameapi<IMAGE>
dockerrun--networkapp-netcurlimages/curlcurlhttp://api:8080# works as hostname
# Volume listdockervolumels
dockervolumeinspect<VOLUME>
# Named volumedockerrun-vpgdata:/var/lib/postgresql/datapostgres:16
# Bind mount (host path)dockerrun-v$(pwd)/config:/etc/app:ro<IMAGE>
# tmpfs (in RAM, no disk write — for security)dockerrun--tmpfs/tmp:size=100M,mode=1777<IMAGE>
# Volume backupdockerrun--rm-vpgdata:/data-v$(pwd):/backupubuntu\tarczf/backup/pgdata.tar.gz/data
# Volume restoredockerrun--rm-vpgdata:/data-v$(pwd):/backupubuntu\bash-c"cd /data && tar xzf /backup/pgdata.tar.gz --strip 1"
# All stopped containersdockercontainerprune
# All unreferenced images (dangling)dockerimageprune
# All unused images (dangling + unreferenced)dockerimageprune-a
# Volumes (CAUTION: data is deleted)dockervolumeprune
# Everything in one commanddockersystemprune-a--volumes
# Disk usage reportdockersystemdf
dockersystemdf-v# detailed
# Logindockerlogin<REGISTRY>
dockerloginghcr.io-u<USER># token from stdin# Tag + pushdockertaglocal-image<REGISTRY>/<IMAGE>:<TAG>
dockerpush<REGISTRY>/<IMAGE>:<TAG>
# Pull specific platformdockerpull--platformlinux/arm64<IMAGE>
# Image manifest (get the digest)dockermanifestinspect<REGISTRY>/<IMAGE>:<TAG>
# Stop all containersdockerstop$(dockerps-q)# Remove all containers (stopped + running)dockerrm-f$(dockerps-aq)# Kill all containers tied to an imagedockerps-a-q--filterancestor=<IMAGE>|xargsdockerrm-f
# Remove images matching a patterndockerimages--format'{{.Repository}}:{{.Tag}}'|grep'<PATTERN>'|xargsdockerrmi
# Container disk usagedockerps--size
# Image vulnerability scandockerscoutcves<IMAGE>
trivyimage<IMAGE>
grype<IMAGE>