Hiểu hướng dẫn Dockerfile VOLUME

Sửa máy tính tại nhà TPHCM

Docker volume được sử dụng để lưu trữ dữ liệu liên tục bên ngoài vùng chứa của bạn. Chúng cho phép các tệp cấu hình, cơ sở dữ liệu và bộ nhớ đệm được ứng dụng của bạn sử dụng để tồn tại lâu hơn các cá thể vùng chứa riêng lẻ.

Bạn Đang Xem: Hiểu hướng dẫn Dockerfile VOLUME

Các khối lượng có thể được gắn kết khi bạn khởi động vùng chứa với docker run lệnh của -v lá cờ. Điều này có thể tham chiếu đến một ổ đĩa đã đặt tên hoặc liên kết gắn kết một thư mục máy chủ lưu trữ vào hệ thống tệp của vùng chứa.

Cũng có thể xác định khối lượng tại thời điểm xây dựng hình ảnh bằng cách sử dụng VOLUME hướng dẫn trong Dockerfiles của bạn. Cơ chế này đảm bảo rằng các vùng chứa bắt đầu từ hình ảnh sẽ có sẵn bộ nhớ liên tục. Trong bài viết này, bạn sẽ học cách sử dụng hướng dẫn này và các trường hợp sử dụng phù hợp.

Xác định khối lượng trong Dockerfiles

Dockerfile VOLUME lệnh tạo một điểm gắn kết khối lượng tại một đường dẫn vùng chứa được chỉ định. Một ổ đĩa sẽ được gắn kết từ hệ thống tệp của máy chủ lưu trữ Docker của bạn mỗi khi vùng chứa khởi động.

Dockerfile trong ví dụ sau xác định một ổ đĩa tại /opt/app/data đường dẫn container. Vùng chứa mới sẽ tự động gắn một ổ đĩa vào thư mục.

FROM ubuntu:22.04
VOLUME /opt/app/data

Xây dựng hình ảnh của bạn để bạn có thể kiểm tra khối lượng gắn kết:

$ docker build -t volumes-test:latest .

Truy xuất danh sách các tập hiện có làm tài liệu tham khảo:

$ docker volume ls
DRIVER   VOLUME NAME
local    demo-volume

Xem Thêm : 7 máy tính xách tay và máy tính bảng tốt nhất cho sinh viên đại học (2022):

Bây giờ hãy bắt đầu một vùng chứa bằng cách sử dụng hình ảnh thử nghiệm của bạn:

$ docker run -it volume-test:latest
root@07be7bde68c2:/#

Lặp lại docker volume ls lệnh để xác nhận một tập mới đã được tạo:

$ docker volume ls
DRIVER   VOLUME NAME
local    3198bf857fdcbb8758c5ec7049f2e31a40b79e329f756a68725d83e46976b7a8
local    demo-volume

Thoát ra khỏi vỏ của vùng chứa thử nghiệm của bạn để vùng chứa dừng lại:

root@07be7bde68c2:/# exit
exit

Khối lượng và dữ liệu của nó sẽ tiếp tục tồn tại:

$ docker volume ls
DRIVER   VOLUME NAME
local    3198bf857fdcbb8758c5ec7049f2e31a40b79e329f756a68725d83e46976b7a8
local    demo-volume

Bạn có thể xác định nhiều khối lượng trong một lệnh dưới dạng một chuỗi được phân cách bằng dấu cách hoặc một mảng JSON. Cả hai biểu mẫu sau đều tạo và gắn kết hai ổ đĩa duy nhất khi vùng chứa bắt đầu:

VOLUME /opt/app/data /opt/app/config
# OR
VOLUME ["/opt/app/data", "/opt/app/config"]

Điền nội dung khối lượng ban đầu

Các tập được tự động điền với nội dung được đặt vào thư mục mount bằng các bước xây dựng hình ảnh trước đó:

FROM ubuntu:22.04
COPY default-config.yaml /opt/app/config/default-config.yaml
VOLUME /opt/app/config

Dockerfile này xác định một ổ đĩa sẽ được khởi tạo với tệp hiện có default-config.yaml tập tin. Vùng chứa sẽ có thể đọc /opt/app/config/default-config.yaml mà không cần phải kiểm tra xem tệp có tồn tại hay không.

Các thay đổi đối với nội dung của một tập đã được thực hiện sau các VOLUME hướng dẫn sẽ bị loại bỏ. Trong ví dụ này, default-config.yaml tệp vẫn có sẵn sau khi vùng chứa bắt đầu vì rm lệnh đến sau /opt/app/config được đánh dấu là một tập.

FROM ubuntu:22.04
COPY default-config.yaml /opt/app/config/default-config.yaml
VOLUME /opt/app/config
RUN rm /opt/app/config/default-config.yaml

Ghi đè hướng dẫn VOLUME khi bắt đầu một vùng chứa

Các tập được tạo bởi VOLUME lệnh được đặt tên tự động với một hàm băm dài duy nhất. Bạn không thể thay đổi tên của chúng, vì vậy có thể khó xác định khối lượng nào đang được vùng chứa của bạn sử dụng tích cực.

Xem Thêm : Sự cường điệu là có thể nghi ngờ – Đánh giá Geek

Bạn có thể ngăn các ổ này xuất hiện bằng cách xác định thủ công các ổ trên vùng chứa của mình với docker run -v như thường lệ. Lệnh sau gắn kết một cách rõ ràng một ổ đĩa đã đặt tên vào vùng chứa của /opt/app/config thư mục, làm cho Dockerfile’s VOLUME hướng dẫn thừa.

$ docker run -it -v config:/opt/app/config volumes-test:latest

Khi nào bạn nên sử dụng hướng dẫn về khối lượng?

VOLUME hướng dẫn có thể hữu ích trong các tình huống mà bạn muốn thực thi tính kiên trì được sử dụng, chẳng hạn như trong các hình ảnh đóng gói máy chủ cơ sở dữ liệu hoặc kho lưu trữ tệp. Sử dụng VOLUME hướng dẫn giúp khởi động vùng chứa dễ dàng hơn mà không cần nhớ -v cờ để áp dụng.

VOLUME cũng đóng vai trò như tài liệu về các đường dẫn vùng chứa lưu trữ dữ liệu liên tục. Bao gồm các hướng dẫn này trong Dockerfile của bạn cho phép bất kỳ ai xác định nơi chứa dữ liệu của bạn, ngay cả khi họ không quen với ứng dụng của bạn.

Cạm bẫy VOLUME

VOLUME không phải là không có nhược điểm của nó. Vấn đề lớn nhất của nó là cách nó tương tác với các bản dựng hình ảnh. Sử dụng hình ảnh có VOLUME hướng dẫn như hình ảnh cơ sở của bản dựng của bạn sẽ hoạt động bất ngờ nếu bạn thay đổi nội dung trong điểm gắn kết khối lượng.

Gotcha trước đó vẫn được áp dụng: tác động của các lệnh sau VOLUME hướng dẫn sẽ bị loại bỏ. Như VOLUME sẽ nằm trong hình ảnh cơ sở, mọi thứ trong Dockerfile của riêng bạn đều có sau hướng dẫn và bạn không thể sửa đổi nội dung mặc định của thư mục. Phía sau hậu trường, việc khởi động vùng chứa tạm thời cho bản dựng sẽ tạo ra một ổ đĩa mới trên máy chủ lưu trữ của bạn. Vùng chứa này sẽ bị phá hủy khi kết thúc quá trình xây dựng. Các thay đổi sẽ không được sao chép trở lại hình ảnh đầu ra.

Việc gắn âm lượng tự động cũng có thể gặp vấn đề trong các trường hợp khác. Đôi khi người dùng có thể thích bắt đầu một vùng chứa tạm thời mà không có bất kỳ khối lượng nào, có thể cho mục đích đánh giá hoặc gỡ lỗi. VOLUME loại bỏ khả năng này vì không thể tắt các ngàm tự động. Điều này gây ra nhiều khối lượng dư thừa tích tụ trên máy chủ nếu các vùng chứa sử dụng lệnh được khởi động thường xuyên.

Bản tóm tắt

Dockerfile VOLUME hướng dẫn cho phép xác định khối lượng gắn kết tại thời điểm xây dựng hình ảnh. Họ đảm bảo rằng các vùng chứa bắt đầu từ hình ảnh sẽ có sẵn bộ nhớ dữ liệu liên tục, ngay cả khi người dùng bỏ qua docker run lệnh của -v lá cờ.

Hành vi này có thể hữu ích cho những hình ảnh mà ở đó sự bền bỉ là rất quan trọng hoặc cần nhiều khối lượng. Tuy nhiên VOLUME hướng dẫn cũng phá vỡ một số kỳ vọng của người dùng và giới thiệu các hành vi độc đáo nên nó cần được viết cẩn thận. Cung cấp tệp Docker Compose tự động tạo các ổ đĩa cần thiết thường là một giải pháp tốt hơn.

dịch vụ cài win online từ xa

Nguồn: https://trungtamsuamaytinh.com
Danh mục: TIN HỌC

Vui lòng đánh giá về dịch vụ tại nhà