Trong bài viết trước, chúng ta đã tìm hiểu tổng quan về Docker và những lợi ích mà nó mang lại. Bài viết này sẽ đi sâu vào những khái niệm cơ bản nhất trong Docker, giúp bạn có nền tảng vững chắc để bắt đầu sử dụng Docker một cách hiệu quả.

VM vs Container
Docker Image
Docker Image là một tập hợp các lớp (layers) được đóng gói chứa mọi thứ cần thiết để chạy một ứng dụng, bao gồm mã nguồn, thư viện, và các cài đặt cấu hình. Một Image có thể được coi như một mẫu (template) dùng để tạo ra các container. Image không thay đổi khi đã được tạo ra, giúp đảm bảo tính nhất quán của ứng dụng.
- Tạo Docker Image: Bạn có thể tạo một Image bằng cách viết một tệp cấu hình gọi là
Dockerfile
. Dockerfile mô tả các bước cần thiết để xây dựng Image, như cài đặt thư viện, copy mã nguồn, cấu hình môi trường. - Image Repository: Image sau khi được tạo có thể lưu trữ và chia sẻ qua các repository như Docker Hub hoặc private registry.
Docker Container
Docker Container là một thực thể đang chạy của một Image. Nói cách khác, container là môi trường nơi ứng dụng của bạn chạy, với tất cả các thư viện và cài đặt cần thiết đã được đóng gói trong Image.
Các lệnh cơ bản với container:
-
Chạy container:
docker run <image_name>
Lệnh này sẽ tạo và chạy một container từ Image bạn chỉ định.
-
Liệt kê các container:
docker ps
Hiển thị danh sách các container đang chạy.
-
Dừng container:
docker stop <container_id>
Dừng một container đang chạy dựa vào ID của nó.
-
Xóa container:
docker rm <container_id>
Xóa container đã ngừng hoạt động.
Dockerfile
Dockerfile là một tệp văn bản chứa các lệnh để xây dựng Docker Image. Đây là một cách tự động và dễ dàng để cấu hình môi trường cho ứng dụng của bạn.
Ví dụ một Dockerfile đơn giản:
# Sử dụng image cơ bản của Python
FROM python:3.8
# Thiết lập thư mục làm việc
WORKDIR /app
# Sao chép mã nguồn vào thư mục /app
COPY . /app
# Cài đặt các gói phụ thuộc
RUN pip install -r requirements.txt
# Chạy ứng dụng
CMD ["python", "app.py"]
- FROM: Xác định image cơ bản (base image) để bắt đầu.
- WORKDIR: Thiết lập thư mục làm việc bên trong container.
- COPY: Sao chép tệp từ hệ thống của bạn vào container.
- RUN: Chạy các lệnh để thiết lập môi trường.
- CMD: Xác định lệnh mặc định khi container được khởi động.
Các bạn có thể tham khảo thêm chi tiết tại đây
Docker Compose
Docker Compose là một công cụ giúp định nghĩa và quản lý nhiều container cùng lúc bằng cách sử dụng một tệp YAML. Thay vì phải khởi động từng container một cách thủ công, bạn có thể dùng Docker Compose để dễ dàng thiết lập các dịch vụ liên quan và chạy chúng đồng bộ.
Ví dụ tệp docker-compose.yml
:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
Lệnh khởi chạy Docker Compose:
docker-compose up
Lệnh này sẽ dựng và chạy tất cả các container được định nghĩa trong tệp docker-compose.yml
.
Tổng Kết
Bài viết này đã giới thiệu các khái niệm cơ bản trong Docker bao gồm Docker Image, Docker Container, Dockerfile và Docker Compose. Nắm vững những kiến thức này sẽ giúp bạn có thể triển khai và quản lý các ứng dụng một cách dễ dàng, linh hoạt. Trong bài tiếp theo, chúng ta sẽ tìm hiểu về networking trong Docker.
Hẹn gặp lại bạn trong bài viết tiếp theo về networking trong Docker!