Intermediate DevOps

Docker Basics

Containers, images, docker-compose, and orchestration.

Containerization with Docker

Docker packages applications with their dependencies into lightweight, portable containers.

Core Concepts

  • Image: Blueprint for containers (immutable)
  • Container: Running instance of an image
  • Dockerfile: Instructions to build an image
  • Registry: Storage for images (Docker Hub)

Basic Commands

# Images
docker build -t myapp .
docker pull node:18
docker images

# Containers
docker run -d -p 3000:3000 myapp
docker ps
docker logs container_id
docker stop container_id

Dockerfile Example

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Docker Compose

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret