CodeGym /Các khóa học /Docker SELF /Cơ bản về lưu trữ dữ liệu trong Docker

Cơ bản về lưu trữ dữ liệu trong Docker

Docker SELF
Mức độ , Bài học
Có sẵn

1.1 Volumes (Tập tin lưu trữ)

Lưu trữ dữ liệu trong Docker là một phần quan trọng trong làm việc với containers. Containers tự chúng là ephemeral, nghĩa là dữ liệu bên trong chúng sẽ bị mất sau khi dừng hoặc xoá containers. Để giữ dữ liệu giữa các lần chạy và đảm bảo lưu trữ dài hạn, Docker cung cấp hai công nghệ chính: volumes và bind mounts (thư mục liên kết).

Volumes

Volumes là các tài nguyên được Docker quản lý để lưu dữ liệu. Chúng tồn tại độc lập với vòng đời của containers, điều này cho phép sử dụng chúng để lưu trữ dữ liệu dài hạn. Volumes có thể được tạo và quản lý bởi Docker, cung cấp một cách thuận tiện để lưu dữ liệu ngoài containers.

Lợi ích của việc sử dụng volumes

  1. Tách biệt với host: Volumes được lưu trữ trong thư mục đặc biệt trên host được Docker quản lý, điều này đảm bảo sự tách biệt của chúng.
  2. Dễ dàng quản lý: Docker cung cấp các lệnh tiện lợi để tạo, xoá và quản lý volumes.
  3. Tương thích và di chuyển dễ dàng: Volumes có thể dễ dàng di chuyển giữa các hosts khác nhau và sử dụng với các containers khác nhau.

Ví dụ về tạo và sử dụng volumes

Tạo volumes:

Terminal

docker volume create my_volume

Sử dụng volume trong container:

Trong ví dụ này, volume my_volume được mount vào thư mục /data bên trong container my_container.

Terminal

docker run -d --name my_container -v my_volume:/data nginx

1.2 Thư mục gắn kết (Bind Mounts)

Thư mục gắn kết cho phép mount các thư mục xác định từ máy chủ vào container. Điều này giúp container sử dụng file và thư mục nằm trên máy chủ, cực kỳ hữu ích cho việc phát triển và kiểm thử khi cần làm việc với các file cục bộ.

Lợi ích của việc sử dụng thư mục gắn kết:

  1. Truy cập trực tiếp vào file trên máy chủ: container có thể trực tiếp sử dụng file và thư mục nằm trên máy chủ.
  2. Thuận tiện cho phát triển: các lập trình viên có thể dễ dàng thay đổi file trên máy chủ và thấy các thay đổi đó trong container ngay lập tức.
  3. Linh hoạt: thư mục gắn kết có thể là bất kỳ thư mục nào trên máy chủ, mang lại sự linh hoạt lớn trong việc quản lý dữ liệu.

Ví dụ sử dụng thư mục gắn kết

Chạy container với thư mục gắn kết:

Terminal

docker run -d --name my_container -v /path/on/host:/data nginx

Trong ví dụ này, thư mục /path/on/host trên máy chủ được mount vào thư mục /data bên trong container my_container.

So sánh Volume và thư mục gắn kết:

Đặc điểm Volumes Thư mục gắn kết
Lưu trữ dữ liệu Quản lý bởi Docker Quản lý bởi người dùng
Cách ly Cách ly khỏi hệ thống file máy chủ Sử dụng hệ thống file của máy chủ
Hiệu suất Tối ưu hóa cho Docker Phụ thuộc vào hệ thống file của máy chủ
Ứng dụng Lưu trữ dữ liệu dài hạn Phát triển và kiểm thử

1.3 Ví dụ thực tế

Ví dụ thực tế về cách sử dụng

Ví dụ 1: Sử dụng volumes cho cơ sở dữ liệu

Để đảm bảo lưu trữ dữ liệu cơ sở dữ liệu lâu dài, có thể sử dụng volumes.

Tạo volume:

Terminal

docker volume create db_data

Chạy container cơ sở dữ liệu với volume:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

Ví dụ 2: Sử dụng thư mục bind mount cho phát triển web

Để phát triển ứng dụng web, có thể sử dụng thư mục bind mount để các thay đổi trong tệp cục bộ được phản ánh ngay trong container.

Chạy container với thư mục bind mount:

Terminal

docker run -d --name web_dev -v $(pwd)/my_website:/usr/share/nginx/html nginx

Trong ví dụ này, thư mục làm việc hiện tại my_website được gắn vào thư mục /usr/share/nginx/html của container nginx.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION