Trang chủ Thủ Thuật Cách gắn thư mục máy chủ vào vùng chứa Docker

Cách gắn thư mục máy chủ vào vùng chứa Docker

0
20

Cách gắn thư mục máy chủ vào vùng chứa Docker

993634a1 1

Docker cung cấp các công cụ để kết nối hệ thống tệp của vùng chứa và hệ điều hành máy chủ đang chạy vùng chứa, chẳng hạn như liên kết gắn kết và ổ đĩa. Chúng có thể rất hữu ích trong môi trường phát triển và sản xuất.

Tại sao lại gắn kết từ máy chủ?

Nói chung, với Docker, bạn muốn hình ảnh chạy độc lập với hệ thống máy chủ. Ví dụ: nếu bạn muốn cập nhật mã của ứng dụng hoặc tệp cấu hình, bạn có thể muốn tạo một phiên bản mới của vùng chứa và triển khai lại. Điều này cho phép bạn nhanh chóng mở rộng quy mô và di chuyển hình ảnh mà không cần lo lắng về phần cứng mà chúng chạy trên đó.

Tuy nhiên, trong môi trường nhà phát triển, việc có thể gắn trực tiếp một thư mục để cho phép tải lại nóng cấu hình hoặc mã có thể rất hữu ích. Ví dụ: bạn có thể đang làm việc trên tệp JS hoặc plugin PHP mà bạn có thể chỉ cần kéo và thả vào vùng chứa. Hoặc bạn có thể muốn gắn toàn bộ thư mục cấu hình NGINX để hoạt động trên trang web của mình. Dù trường hợp sử dụng của bạn là gì, việc gắn các tệp không phải là một giải pháp tồi.

Nó cũng hữu ích trong sản xuất, nếu bạn có các dịch vụ lưu trữ phụ thuộc vào các tệp trong vùng chứa. Ví dụ: bạn có thể có dịch vụ nhập và tổng hợp nhật ký sẽ thích hơn nếu các tệp nhật ký của vùng chứa nằm trong một thư mục có thể truy cập được từ máy chủ. Mặc dù có thể có một số giải pháp trong Docker thuần túy cho các vấn đề của bạn, nhưng đôi khi việc gắn một ổ đĩa đơn giản hơn.

Khả năng tương thích macOS

Lưu ý: vì các mount được xử lý thông qua Docker API, chúng sẽ hoạt động bất kể hệ điều hành máy chủ. Tuy nhiên, macOS có các biện pháp bảo vệ bổ sung và việc gắn kết bên ngoài một vài thư mục máy chủ có thể không thành công với “các kết nối bị từ chối” trong thời gian chạy. Điều này bao gồm /Users , bao gồm hầu hết các hoạt động, nhưng nếu cần, bạn có thể sửa lỗi này trong cài đặt Docker trong Tùy chọn> Tài nguyên> Chia sẻ Tệp bằng cách thêm thư mục đích vào danh sách.

Gắn một Thư mục Máy chủ

Tạo một mount liên kết khá đơn giản. Thêm nó bằng --mount type=bind khi khởi động, chỉ định nguồn và thư mục đích để gắn kết.

docker run -d 
-nó 
--name container 
--mount type = bind, source = / nginxconfig, target = / etc / nginx 
nginx: mới nhất
Quảng cáo

Gắn kết là đơn giản nhất, nhưng Docker cung cấp API Khối lượng để quản lý các loại gắn kết này tốt hơn một chút. Dữ liệu được lưu trữ sẽ do Docker quản lý và thư mục ổ đĩa sẽ được tạo tự động trong thư mục của Docker. Đây có thể không phải là điều bạn muốn nếu bạn có một thư mục hiện có, nhưng phương pháp này tốt hơn vì nó không phụ thuộc vào cấu trúc tệp của hệ điều hành chủ.

âm lượng docker tạo nginx-config

docker run -d 
--name devtest 
--mount source = nginx-config, target = / etc / nginx 
nginx: mới nhất

Bạn cũng có thể sử dụng Docker Compose để xác định khối lượng:

phiên bản: "3.0"
dịch vụ:
  web:
    hình ảnh: nginx: mới nhất
    cổng:
      - "80:80"
    khối lượng:
      - nginx-config: / etc / nginx /
khối lượng:
  nginx-config:

Chúng được lưu trữ ở định dạng tiêu chuẩn có thể truy cập vào Linux:

/ var / lib / docker / volume / volumeID / _data

Tuy nhiên, trên macOS, bạn sẽ cần kết nối với máy ảo Docker để có thể xem khối lượng.

LIÊN QUAN: Các tập Docker là gì, và bạn sử dụng chúng như thế nào?

Gắn kết các tệp đơn

Việc gắn toàn bộ thư mục hoạt động tốt khi bạn muốn chỉnh sửa nhiều tệp cấu hình / mã được lưu trữ trên máy chủ. Tuy nhiên, đôi khi bạn có thể chỉ muốn gắn một tệp để chỉnh sửa mà không cần chạm vào các tệp khác.

Để thực hiện việc này, bạn có thể chạy vùng chứa với một liên kết gắn kết, hỗ trợ các tệp riêng lẻ nếu bạn chỉ định đường dẫn:

docker run -it 
--mount type = bind, source = / path / file.cfg, target = / etc / example / file.cfg 
nginx sh
Quảng cáo

Nếu bạn có nhiều tệp để gắn kết theo cách này, bạn có thể đặt tất cả chúng vào cùng một thư mục lưu trữ và gắn kết thư mục đó vào một vị trí khác trong vùng chứa. Sau đó, bạn có thể sử dụng các liên kết tượng trưng bên trong vùng chứa để liên kết các tệp trong thư mục được gắn kết đến vị trí thích hợp.

How to Assign a Static IP to a Docker Container

Cách gán IP tĩnh cho vùng chứa Docker

How to Switch, Add, and Remove Git Remotes

Cách chuyển đổi, thêm và xóa Git Remotes

How to View the Remote URL a Github Repository Was Cloned From

Cách xem URL từ xa một kho lưu trữ Github đã được sao chép từ

How to Assign a Static IP to a Docker Container

Cách sử dụng Dockerfile ONBUILD để chạy trình kích hoạt trên các công trình hạ nguồn

What’s New in PHPStan 1.0?

Có gì mới trong PHPStan 1.0?

How to Harden Docker Images For Maximum Security

Làm thế nào để ngăn chặn hình ảnh Docker để bảo mật tối đa

Dịch từ: https://www.cloudsavvyit.com/14425/how-to-mount-a-host-directory-into-a-docker-container/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây