Images
6 snippetsBuild and manage images
List Images
docker images
docker image lsPull Image
docker pull nginx
docker pull nginx:1.25Build Image
docker build -t myapp:1.0 .
docker build -f Dockerfile.dev -t myapp:dev .Remove Image
docker rmi nginx
docker rmi $(docker images -q) # All imagesTag Image
docker tag myapp:1.0 registry.com/myapp:1.0Push Image
docker push registry.com/myapp:1.0Containers
6 snippetsRun and manage containers
Run Container
docker run nginx
docker run -d nginx # Detached
docker run -it ubuntu bash # InteractiveRun with Options
docker run -d \
--name web \
-p 8080:80 \
-v ./html:/usr/share/nginx/html \
-e ENV_VAR=value \
nginxList Containers
docker ps # Running
docker ps -a # AllStop/Start
docker stop container_name
docker start container_name
docker restart container_nameRemove Container
docker rm container_name
docker rm -f container_name # Force
docker container prune # All stoppedExecute Command
docker exec -it container_name bash
docker exec container_name ls /appDockerfile
5 snippetsDefine container images
Basic Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]Multi-stage Build
# Build stage
FROM node:18 AS builder
WORKDIR /app
COPY . .
RUN npm run build
# Production stage
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/htmlARG & ENV
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
ENV PORT=3000ENTRYPOINT vs CMD
# ENTRYPOINT: always runs
ENTRYPOINT ["node"]
# CMD: default args, can override
CMD ["app.js"]Health Check
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost/ || exit 1Tired of looking up syntax?
DocuWriter.ai generates documentation and explains code using AI.
Docker Compose
4 snippetsMulti-container applications
Basic compose.yml
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./src:/app/src
environment:
- NODE_ENV=developmentMultiple Services
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Compose Commands
docker compose up # Start
docker compose up -d # Detached
docker compose up --build # Rebuild
docker compose down # Stop & remove
docker compose logs -f # Follow logsScale Services
docker compose up -d --scale worker=3Volumes & Networks
6 snippetsData persistence and networking
Create Volume
docker volume create mydataList Volumes
docker volume lsMount Volume
docker run -v mydata:/app/data nginx
docker run -v ./local:/app/data nginxCreate Network
docker network create mynetConnect to Network
docker run --network mynet nginx
docker network connect mynet container_nameInspect
docker volume inspect mydata
docker network inspect mynetCleanup
4 snippetsRemove unused resources
Remove All Stopped
docker container pruneRemove Dangling Images
docker image pruneRemove All Unused
docker system prune
docker system prune -a # Include unused imagesView Disk Usage
docker system df