Docker Quick Reference
bash
# Build
docker build -t myapp:v1.0 .
docker build -t myapp:v1.0 --no-cache .
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:v1.0 --push .
# Run
docker run -d -p 8080:80 --name myapp myapp:v1.0
docker run -it --rm ubuntu:22.04 /bin/bash
docker run -e DB_HOST=localhost -v /data:/data myapp:v1.0
# Inspect
docker ps -a
docker images
docker logs myapp -f
docker exec -it myapp /bin/bash
docker inspect myapp
docker stats
# Registry
docker login registry.example.com
docker tag myapp:v1.0 registry.example.com/myapp:v1.0
docker push registry.example.com/myapp:v1.0
docker pull registry.example.com/myapp:v1.0
# Cleanup
docker system prune -f
docker image prune -a
docker volume prune
# Multi-stage Dockerfile example
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
# Full install (including devDependencies) BEFORE building -- most real
# projects' build tooling (bundlers, TypeScript) lives in devDependencies,
# so installing production-only here would make `npm run build` fail
COPY . .
RUN npm run build
RUN npm prune --omit=dev
FROM node:20-slim AS runtime
RUN useradd -r -u 1001 appuser
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
USER appuser
EXPOSE 3000
CMD ["node", "dist/server.js"]

