Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Docker &khối lượng dữ liệu - Hướng dẫn

Để thay đổi, hôm nay, chúng ta sẽ có một bài viết tương đối ngắn và đơn giản về khung tự động hóa vùng chứa Docker. Chúng ta sẽ tìm hiểu cách gắn dữ liệu bên trong các thùng chứa, cách chia sẻ dữ liệu và tất cả các thông tin cần thiết để biến các phiên bản của chúng ta thành các hệ thống hữu ích.

Cho đến nay, bạn đã thích - và đó là một thuật ngữ tự do - một hướng dẫn giới thiệu rất chi tiết, sau đó chúng tôi tìm hiểu về các dịch vụ, kết nối mạng và giải quyết một số lỗi khó. Hướng dẫn này tiếp tục truyền thống, từng bước một, vì vậy nó phải đơn giản và rõ ràng. Hãy để chúng tôi bắt đầu.

Khái niệm cơ bản

Quá trình hiển thị dữ liệu máy chủ bên trong vùng chứa tương đối đơn giản và nó giống với lệnh mount. Bạn cung cấp một thư mục hoặc tệp nguồn và trỏ nó tới một thư mục hoặc tệp đích. Giống như các cổng, bao gồm các phần máy chủ và vùng chứa.

docker run -it -v /root/testing:/dedoimedo centos:latest /bin/bash

Chúng tôi đang chạy một bộ chứa mới với trình bao Bash và chúng tôi sẽ gắn thư mục /root/testing của máy chủ vào bên trong bộ chứa dưới /dedoimedo. Trên máy chủ, nguồn có thể là bất cứ thứ gì, bao gồm cả giá treo NFS, giúp biến thứ này thành một thứ chia sẻ dữ liệu từ xa đáng yêu một cách hiệu quả. Trên thực tế, NFS ngăn việc tái xuất, nhưng đây thực sự là hành vi gian lận vì đại loại là bạn vẫn đang làm điều tương tự trên cùng một máy chủ.

Bên trong vùng chứa, bây giờ bạn có thể kiểm tra nội dung của thư mục /dedoimedo và xem những gì được lưu trữ bên trong. Tuy nhiên, trên bản dựng CentOS tiêu chuẩn, mặc định, đây là trường hợp thử nghiệm của chúng tôi ở đây, bạn có thể gặp lỗi. Và điều này có liên quan, bởi vì bạn có thể gặp phải sự cố tương tự và nên sẵn sàng và sẵn sàng gỡ lỗi, ngoài ra, điều đó cho thấy rằng các tính năng bảo mật đôi khi có thể gây bất lợi.

ls
ls:không thể mở thư mục .:Quyền bị từ chối

Tính năng bảo mật. Vâng, tất nhiên, SELinux. May mắn thay, vấn đề có thể được khắc phục. Bạn có thể thay đổi chính sách thực thi cho mô-đun hoặc bạn có thể thêm một quy tắc mới sẽ cho phép bộ chứa truy cập vào ổ đĩa đã gắn.

thiết lập lực lượng 0

Và quy tắc, nếu bạn muốn đi theo hướng đó:

chcon -Rt svirt_sandbox_file_t /

Sau đó, bạn sẽ thấy nội dung và bạn có thể bắt đầu phát, ghi tệp, v.v. Thật vậy, nếu lần đầu tiên chúng ta nhìn vào máy chủ, tạo một tệp mới bên trong thư mục được gắn kết, chúng ta sẽ thấy một cái gì đó như bên dưới, ngoại trừ nội dung thực tế của khóa học:

Chia sẻ giữa các vùng chứa

Giống như những gì chúng tôi đã làm với kết nối mạng, bạn có thể muốn hiển thị dữ liệu bên trong một trong các vùng chứa cho người khác để chúng trở thành Vùng chứa khối lượng dữ liệu. Điều này có thể rất hữu ích nếu bạn nhóm chức năng vùng chứa của mình, ngoài ra bạn có thể tiết kiệm được lượng không gian đáng kể. Ngoài ra, bạn cũng có thể xâu chuỗi các ổ đĩa giữa các vùng chứa, điều này cho phép bạn thu hẹp số lượng vùng chứa khác nhau có quyền truy cập vào dữ liệu máy chủ đồng thời. Điều này có thể hữu ích nếu bạn không có cơ chế khóa ghi mạnh mẽ trên máy chủ, điều này hầu như luôn đúng đối với các hệ thống giống như UNIX.

Hãy làm một ví dụ nhanh. Chúng tôi sẽ bắt đầu một vùng chứa với tên của nguồn dữ liệu. Nó sẽ bắt đầu với điểm gắn kết /data. Theo tùy chọn, chúng tôi có thể đảm bảo rằng /data được ánh xạ tới một thư mục trên máy chủ, nhưng hiện tại điều đó vẫn ổn. Sau đó, chúng tôi sẽ tạo vùng chứa thứ hai, vùng chứa này sẽ sử dụng một ổ đĩa từ vùng chứa có tên nguồn dữ liệu.

docker run -ti --name data-source -v /data centos:latest /bin/bash
docker run -ti --volumes-from data-source centos:latest /bin/bash

Bây giờ, nếu chúng ta xem xét hai vùng chứa của mình, cả hai sẽ có thư mục /data, ngoại trừ nguồn dữ liệu sẽ là cái gọi là điểm nhập dữ liệu cho tất cả các vùng chứa đã được chạy với tùy chọn -volumes-from. Bạn có thể tiết kiệm nhiều dung lượng dữ liệu, kiểm soát cách bộ chứa của bạn sử dụng và truy cập dữ liệu gốc, đồng thời bạn có thể dễ dàng kiểm tra nhiều cấu hình phần mềm hơn. Rất gọn gàng, tổng thể.

[dữ liệu root@68d3ed5e243a]# pwd
/dữ liệu
[dữ liệu root@68d3ed5e243a]# touch STUFF
[root@68d3ed5e243a data]# 

Và vùng chứa thứ hai:

[root@7aed935cc156 /]# ls -la /data
tổng cộng 4
drwxr-xr-x. 2 root root   18 tháng 5  1 11:46 .
drwxr-xr-x. 18 root root 4096  1 tháng 5 11:45 ..
-rw-r--r--. 1 root root    0 May  1 11:46 STUFF
[root@7aed935cc156 /]#

Tiếp theo là gì?

Dù bạn có tin hay không, chúng tôi sẽ dừng lại ở điểm này. Có một số bước khác mà chúng tôi có thể thực hiện, chẳng hạn như sao lưu, xóa dữ liệu, v.v., nhưng đó là một chủ đề riêng. Hiện tại, chúng tôi có đủ để bắt đầu làm việc với khối lượng dữ liệu và hiển thị chúng bên trong vùng chứa dưới dạng điểm gắn kết. Dù sao đi nữa, theo nguyên tắc thông thường, bạn có thể muốn sử dụng dữ liệu chỉ đọc cho các công cụ và cấu hình môi trường, vùng chứa ổ đĩa cho dữ liệu lớn, các thư mục nhỏ, đơn giản và các điểm gắn kết để thử nghiệm, v.v.

Kết luận

Việc xử lý khối lượng Docker tương đối đơn giản và tôi tin rằng khía cạnh này của công nghệ vùng chứa vẫn cần phát triển trước khi nó có thể đạt đến mức trưởng thành như các phần khác của khung. Nó không quá phong phú về tính năng và cần có các cách bổ sung để kiểm soát dữ liệu, bao gồm ảnh chụp nhanh, hỗ trợ tích hợp để phân phối và song song hóa dữ liệu, v.v.

Chà, ít nhất, bạn đã học được một số điều mới trong hướng dẫn này, bao gồm cách tạo điểm gắn kết và gắn kết khối lượng dữ liệu, cách xâu chuỗi chúng, cũng như sửa một số lỗi nhỏ trong quá trình thực hiện. Có lẽ hướng dẫn này cảm thấy hơi trần trụi so với phần còn lại, nhưng không phải lúc nào chúng ta cũng cần những bài viết nặng ký, không bao giờ kết thúc. Đôi khi, thật tốt khi giữ cho nó ngắn gọn và ngọt ngào. Thật vậy, trên vỏ bom đó, kết thúc.

Chúc mừng.