Skip to Content

Docker và Containerization: Hướng dẫn cơ bản

Tìm hiểu về Docker và cách containerize ứng dụng của bạn
December 27, 2025 by
Docker và Containerization: Hướng dẫn cơ bản
OdooBot

Docker là gì?

Docker là một nền tảng mã nguồn mở được thiết kế để phát triển, triển khai và chạy ứng dụng trong các container. Container cho phép bạn đóng gói ứng dụng cùng với tất cả các dependencies cần thiết vào một đơn vị chuẩn hóa để phát triển phần mềm.

Tại sao nên sử dụng Docker?

  • Tính nhất quán: Ứng dụng chạy giống nhau trên mọi môi trường
  • Tính di động: Dễ dàng di chuyển giữa các môi trường khác nhau
  • Hiệu quả: Sử dụng tài nguyên hệ thống hiệu quả hơn so với VM
  • Tốc độ: Khởi động nhanh chóng trong vài giây
  • Cô lập: Các container độc lập với nhau

Cài đặt Docker

# Trên Ubuntu/Debian
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Thêm user vào group docker
sudo usermod -aG docker $USER

# Kiểm tra phiên bản
docker --version

Các lệnh Docker cơ bản

# Chạy container
docker run -d -p 80:80 nginx

# Liệt kê container đang chạy
docker ps

# Dừng container
docker stop <container_id>

# Xem logs
docker logs <container_id>

# Xóa container
docker rm <container_id>

Tạo Dockerfile

Dockerfile là file text chứa các lệnh để build Docker image:

FROM ubuntu:22.04

RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . /app

RUN pip3 install -r requirements.txt

CMD ["python3", "app.py"]

Build và Run

# Build image
docker build -t myapp:1.0 .

# Run container
docker run -d -p 5000:5000 myapp:1.0

Docker Compose

Docker Compose giúp định nghĩa và chạy nhiều container cùng lúc:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Best Practices

  • Sử dụng official images khi có thể
  • Giữ image size nhỏ gọn
  • Một process cho mỗi container
  • Sử dụng .dockerignore để loại bỏ file không cần thiết
  • Không lưu secrets trong image
  • Sử dụng multi-stage builds

Kết luận

Docker là công cụ mạnh mẽ giúp đơn giản hóa việc phát triển và triển khai ứng dụng. Với Docker, bạn có thể đảm bảo ứng dụng của mình chạy nhất quán trên mọi môi trường, từ development đến production.

DevOps Best Practices: Từ Development đến Production
Các best practices để xây dựng quy trình DevOps hiệu quả