Làm cách nào để gắn tệp từ bộ chứa Docker vào máy chủ vật lý?

Lưu trữ dữ liệu liên tục trong vùng chứa cần lưu trữ đặc biệt. Có hai tùy chọn - khối lượng hoặc liên kết gắn kết

Nguồn. https. // hiện hóa. com/assets/posts/2019-06-23-change-docker-storage-location/change-docker-storage-location_thumbnail. jpeg

Theo mặc định, tất cả các tệp được tạo bên trong vùng chứa được lưu trữ trên lớp vùng chứa có thể ghi. Điều này có nghĩa rằng

Tải bộ dữ liệu lớn hoặc mô hình có thể mất nhiều thời gian hơn. Để nhập các mô hình và bộ dữ liệu tồn tại trên máy chủ của bạn nhanh hơn, bạn có thể gắn thư mục của mình với dữ liệu vào bộ chứa Docker bằng Workbench

Để gắn thư mục chứa dữ liệu vào bộ chứa Docker, hãy thêm tham số vào lệnh để chạy bộ chứa. Ví dụ: bạn có một tập dữ liệu lớn (hoặc một mô hình) trong đường dẫn.

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
0 và muốn nhập tập dữ liệu này vào Workbench. Làm theo các bước dưới đây

  1. Dừng chạy bộ chứa Docker bằng lệnh sau
  2. Xóa vùng chứa hiện có
  3. Sao chép đường dẫn đến thư mục chứa dữ liệu của bạn. Ví dụ: nếu tập dữ liệu của bạn ở
    docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
    0, bạn nên sao chép đường dẫn
    docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
    2
  4. Chạy bộ chứa Docker để gắn thư mục với tập dữ liệu của bạn bằng lệnh sau

docker chạy -p 127. 0. 0. 1. 5665. 5665 \

-v /dev/bus/usb. /dev/bus/usb \

-v /localdisk/datasets/. /home/openvino/bàn làm việc/bộ dữ liệu \

-e PROXY_HOST_ADDRESS=0. 0. 0. 0 \

-e http_proxy=\

-e https_proxy=\

Lệnh này chạy bộ chứa Docker có tên

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
3 với các đối số sau

ArgumentExplanation
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
4Ánh xạ cổng bộ chứa Docker
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
5 tới cổng máy chủ
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
5 để có quyền truy cập vào DL Workbench từ trình duyệt web.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
7Cho phép khả năng chứa đầy đủ.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
8Gắn thư mục
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
9 vào bộ chứa Docker và cho phép bộ chứa sử dụng thiết bị GPU trong DL Workbench. Thư mục
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
00Mounts
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
01 vào bộ chứa Docker và cho phép bộ chứa sử dụng thiết bị GPU trong DL Workbench.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
02Gắn thư mục cục bộ
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
2 đến
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
04 trong vùng chứa.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
05

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
06Tùy chọn. Nếu bạn đứng sau một proxy công ty, hãy đặt các biến môi trường.
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
07Bật các quy trình tương tác trong thiết bị đầu cuối DL Workbench. Đặt thành tên hình ảnh Docker
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
3.

Sau khi lệnh thực thi, bạn có thể thêm tập dữ liệu hoặc mô hình cục bộ của mình. Để biết thêm thông tin, hãy xem Chọn mô hình và Chọn bộ dữ liệu

GHI CHÚ. Trong phần Select Model hoặc Select Dataset, chỉ định đường dẫn đến thư mục của bạn với. xml và. các tệp bin như sau.

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
09 hoặc
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
20

Docker là một trong những công cụ phổ biến dành cho DevOps vì tính di động, bảo mật và hiệu suất của nó. Từ bài đăng này, bạn sẽ tìm hiểu một số khái niệm và lệnh cơ bản của Docker sẽ hướng dẫn bạn cách gắn thư mục bên trong bộ chứa Docker. Tôi sử dụng Docker hầu như mỗi ngày để phát triển cục bộ — ví dụ: bạn có thể xem cách tôi cập bến ứng dụng Ruby on Rails cho một dự án cá nhân, tại đây

Thành lập

Trước tiên, bạn sẽ cần cài đặt Docker. Đối với mục đích trình diễn, chúng tôi sẽ sử dụng hình ảnh chính thức được tạo sẵn của Ruby và macOS

  • Hình ảnh Docker. Đó là một mẫu chứa các hướng dẫn để tạo vùng chứa
  • Bộ chứa Docker. Vùng chứa là phiên bản đang chạy của một hình ảnh

Lệnh

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
0 được sử dụng để chạy vùng chứa từ một hình ảnh. Ở đây chúng tôi đang sử dụng hình ảnh ruby ​​​​để tạo vùng chứa, nhưng bạn có thể sử dụng hình ảnh của riêng mình. Nếu hình ảnh ruby ​​​​không tồn tại trên máy chủ, Docker sẽ lấy hình ảnh đó từ Docker Hub. Sau khi được tải xuống trên máy cục bộ của bạn, Docker sử dụng cùng một hình ảnh để tạo vùng chứa liên tiếp. Để gắn âm lượng, chỉ cần chạy dòng này trong thiết bị đầu cuối của bạn

docker run -v /host/directory:/container/directory

Bây giờ bạn sẽ mount thư mục script bên trong thư mục script của vùng chứa. Đây là cách thực hành tốt nhất vì bạn không phải lo lắng về việc quản lý môi trường trên các máy khác nhau

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash

Các cờ

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
1 (thường được viết là
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
2) được sử dụng để truy cập vùng chứa ở chế độ tương tác. Cờ
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
3 (tùy chọn) xóa vùng chứa khi bạn thoát hoặc dừng nó để giải phóng tài nguyên hệ thống (CPU, bộ nhớ). Nếu bạn không sử dụng nó sau khi dừng hoặc thoát khỏi vùng chứa, thì nó phải được xóa thủ công nếu bạn muốn giải phóng dung lượng ổ đĩa. Cờ
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
4 được sử dụng để gắn thư mục máy chủ và nó bao gồm hai trường được phân tách bằng dấu hai chấm. Phần đầu tiên là đường dẫn trong máy chủ. Phần thứ hai là đường dẫn trong container

-v /host/directory:/container/directory

Cờ ____05 (tùy chọn) được sử dụng để đặt tên cụ thể cho vùng chứa. Nếu bạn không muốn cung cấp, Docker sẽ chỉ định một tên ngẫu nhiên, vì vậy bạn có thể muốn chọn một tên cụ thể nếu muốn theo dõi các vùng chứa của mình dễ dàng hơn. Lệnh

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
6 được sử dụng để tải hình ảnh. Nếu bạn muốn sử dụng riêng phiên bản
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
7 của Ruby, hãy sử dụng lệnh
docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
8

docker run -v /host/directory:/container/directory
2

Cuối cùng nhưng không kém phần quan trọng, lệnh

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
9 được sử dụng để lấy bash shell bên trong vùng chứa

Chạy trên máy Mac

Để chạy mã Python, hãy sử dụng hình ảnh python

docker run -v /host/directory:/container/directory
4

Dừng và xóa vùng chứa

Như tôi đã giải thích ở trên, nếu bạn muốn giải phóng tài nguyên hệ thống và dung lượng ổ đĩa, bạn cần dừng và xóa vùng chứa. Bạn có thể chạy lệnh

-v /host/directory:/container/directory
0 trên máy chủ để xem danh sách các vùng chứa đang chạy của mình. Để dừng một vùng chứa, hãy sử dụng lệnh
-v /host/directory:/container/directory
1 với id vùng chứa hoặc tên vùng chứa. Bạn có thể sử dụng cờ
-v /host/directory:/container/directory
2 để xem tất cả các vùng chứa đã dừng hoặc đã thoát

docker run -v /host/directory:/container/directory
8

docker ps VS docker ps -a

Để xóa vùng chứa theo cách thủ công, hãy sử dụng một trong các lệnh sau

docker run -v /host/directory:/container/directory
9

Xóa hình ảnh

Trong trường hợp bạn muốn gỡ bỏ image để giải phóng dung lượng ổ đĩa, ví dụ image Ruby vừa tạo thì dùng lệnh

-v /host/directory:/container/directory
3. Nhưng trước tiên, hãy cố gắng hiểu những gì đang diễn ra bên trong. Để làm được điều đó, chúng tôi sẽ sử dụng các lệnh
-v /host/directory:/container/directory
4 và
-v /host/directory:/container/directory
5 để hiển thị thông tin về việc sử dụng dung lượng ổ đĩa của daemon Docker. Lệnh
-v /host/directory:/container/directory
4 liệt kê tất cả các hình ảnh bạn có trong máy của mình

Trong trường hợp này, tôi có ba hình ảnh trên máy của mình

Một vùng chứa đang hoạt động đang sử dụng một hình ảnh đang hoạt động

Lệnh

-v /host/directory:/container/directory
5 cho tôi biết rằng tôi chỉ có thể yêu cầu 65% dung lượng đĩa vì tôi vẫn đang chạy bộ chứa tập lệnh và bộ chứa đó đang sử dụng hình ảnh ruby. Nếu bạn thêm hai hình ảnh còn lại, bạn sẽ nhận được 65% dung lượng ổ đĩa có thể thu hồi

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
5

Được rồi, bằng cách chạy lệnh

-v /host/directory:/container/directory
5 sau khi dừng vùng chứa cho chúng tôi biết rằng giờ đây chúng tôi có thể yêu cầu 100% dung lượng đĩa

Không có vùng chứa đang hoạt động và không có hình ảnh đang hoạt động

Hãy lưu ý nếu bạn cố xóa hình ảnh đang được vùng chứa sử dụng, bạn sẽ gặp phải lỗi sau

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
7

Cuối cùng, chúng ta có thể sử dụng lệnh

-v /host/directory:/container/directory
3 với id hình ảnh để xóa hình ảnh

docker run -it --rm -v $HOME/Desktop/scripts:/scripts --name scripts ruby bash
9

Gói (lại

Bây giờ bạn đã biết cách mount thư mục bên trong docker container. Docker giúp tôi rất nhiều để tạo môi trường phát triển cục bộ dễ dàng trên nhiều máy mà không tốn thêm công sức và thời gian. Đó là một kỹ năng bạn muốn giữ trong túi của mình cho cả mục đích cá nhân và công việc. Tôi hy vọng điều này sẽ giúp bạn bắt đầu với thế giới kỳ diệu của Docker

Chúng tôi có thể chạy nhiều quy trình trong bộ chứa Docker không?

Bạn có thể có nhiều quy trình , nhưng để tận dụng tối đa Docker, hãy tránh để một vùng chứa chịu trách nhiệm cho nhiều khía cạnh của ứng dụng tổng thể của bạn. Bạn có thể kết nối nhiều vùng chứa bằng mạng do người dùng xác định và khối lượng chia sẻ.

Cú pháp để gắn một thư mục từ máy chủ Docker vào một thư mục trong vùng chứa là gì?

Cờ -v được sử dụng để gắn thư mục máy chủ và nó bao gồm hai trường được phân tách bằng dấu hai chấm. Phần đầu tiên là đường dẫn trong máy chủ. Phần thứ hai là đường dẫn trong container. Cờ --name (tùy chọn) được sử dụng để đặt tên cụ thể cho vùng chứa

Đường dẫn gắn kết trong Docker là gì?

Nguồn gốc của thú cưỡi. Đối với gắn kết liên kết, đây là đường dẫn đến tệp hoặc thư mục trên máy chủ daemon Docker . Có thể được chỉ định làm nguồn hoặc src. Đích nhận giá trị của nó là đường dẫn nơi tệp hoặc thư mục sẽ được gắn vào vùng chứa. Có thể được chỉ định là đích, dst hoặc đích.

Bộ chứa Docker có thể truy cập các tệp bên ngoài bộ chứa không?

Hóa ra là bạn không thể bao gồm các tệp bên ngoài ngữ cảnh bản dựng của Docker . Tuy nhiên, bạn có thể sao chép các tệp từ thư mục mẹ của Dockerfile.