Docker-Cheatsheet

👋 Hello Docker

# Check Docker version
docker --version

# Run a simple container
docker run hello-world

💡 Tip: Use docker run to quickly test images and verify installation.

🖼 Docker Images

# List local images
docker images

# Pull an image from Docker Hub
docker pull nginx:latest

# Build a Docker image from Dockerfile
docker build -t myapp:1.0 .

💡 Tip: Tag your images properly for versioning and deployment.

📦 Docker Containers

# List running containers
docker ps

# List all containers
docker ps -a

# Run a container in detached mode
docker run -d --name webserver -p 8080:80 nginx

# Stop and remove container
docker stop webserver
docker rm webserver

💡 Tip: Use -d for detached containers and -p host:container for port mapping.

💾 Volumes & Data

# Create a volume
docker volume create mydata

# List volumes
docker volume ls

# Run container with volume
docker run -d -v mydata:/data nginx

💡 Tip: Use volumes to persist data even if containers are deleted.

🌐 Networks

# List networks
docker network ls

# Create a network
docker network create mynetwork

# Connect a container to a network
docker network connect mynetwork mycontainer

💡 Tip: Use custom networks for multi-container apps for better isolation and communication.

⚙️ Dockerfile Basics

# Example Dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

💡 Tip: Use small base images and proper caching to speed up builds.

🧩 Docker Compose

# docker-compose.yml example
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: root

💡 Tip: Use docker-compose up -d to run multi-container apps in detached mode.

📜 Useful Docker Commands

# Remove all stopped containers
docker container prune

# Remove unused images
docker image prune -a

# Show container logs
docker logs mycontainer

# Attach to container
docker exec -it mycontainer /bin/bash

💡 Tip: Clean up unused resources regularly to save disk space.

💡 Tips & Best Practices

- Use .dockerignore to exclude unnecessary files
- Prefer lightweight base images (alpine)
- Tag images with versions, not just 'latest'
- Keep containers stateless; use volumes for data
- Regularly update images for security

Post a Comment