2017-07-03 19 views
5

Tôi đang cố gắng tạo vùng chứa để chạy chương trình. Tôi đang sử dụng một hình ảnh cấu hình trước và bây giờ tôi cần chạy chương trình. Tuy nhiên, đó là một chương trình học máy và tôi cần một tập dữ liệu từ máy tính của tôi để chạy.Tôi làm cách nào để sử dụng tệp cục bộ trên vùng chứa?

Tệp quá lớn để được sao chép vào vùng chứa. Nó sẽ là tốt nhất nếu chương trình chạy trong vùng chứa tìm kiếm tập dữ liệu trong một thư mục cục bộ của máy tính của tôi, nhưng tôi không biết làm thế nào tôi có thể làm điều này.

Có cách nào để thực hiện tham chiếu này với một số lệnh docker không? Hoặc sử dụng Dockerfile?

Trả lời

7

Có, bạn có thể thực hiện việc này. Những gì bạn đang mô tả là một khối lượng máy chủ gắn kết. Xem https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume để biết tài liệu về chủ đề này.

Ví dụ, nếu tôi muốn gắn kết một thư mục từ thư mục chính của tôi vào /mnt/mydata trong một container, tôi có thể làm:

docker run -v /Users/andy/mydata:/mnt/mydata myimage 

Bây giờ, /mnt/mydata bên trong container sẽ có quyền truy cập vào /Users/andy/mydata trên máy chủ của tôi.

Hãy nhớ, nếu bạn đang sử dụng Docker cho Mac hoặc Docker cho Windows có thư mục cụ thể trên máy chủ được phép theo mặc định:

Nếu bạn đang sử dụng máy Docker trên máy Mac hoặc Windows, bạn Docker Engine daemon chỉ có quyền truy cập hạn chế vào hệ thống tệp MacOS hoặc Windows của bạn. Docker Machine cố gắng tự động chia sẻ thư mục/Users (macOS) hoặc C: \ Users (Windows) của bạn. Vì vậy, bạn có thể gắn kết các tập tin hoặc thư mục trên macOS sử dụng.

+0

Cảm ơn Andy. Nhưng khi tôi làm điều này lệnh sẽ các tập tin trong thư mục/mnt/mydata được truy cập bình thường? Tôi có thể làm những việc như cd/mnt/mydata/test không? Tôi đã làm những gì bạn nói, nhưng khi tôi sử dụng lệnh ls bên trong thư mục mydata trong vùng chứa thì không có tệp nào. – gomesh

+0

Tôi nghĩ trong trường hợp này, bạn nên hỏi một câu hỏi mới với lệnh 'docker run' và kết quả mong đợi vì nó nằm ngoài phạm vi của câu hỏi này. Đó thực sự là cách nó hoạt động. Có vẻ như thư mục máy chủ không chính xác hoặc bạn đang gắn thứ gì đó từ bên ngoài '/ Users'. Hãy chắc chắn bao gồm các phiên bản của Docker và Docker (Docker cho Windows, vv) bạn đang sử dụng. –

Các vấn đề liên quan