2016-08-09 28 views
5

tôi đang cố gắng để hiểu làm thế nào Docker handle gia tăng của khối lượng và chạy vào các hành vi sau đây mà dường như loại Stange với tôi:hành vi Docker khi lắp khối lượng

Giả mà chúng tôi muốn gắn kết/var/run thư mục vào một container (chỉ là một ví dụ), chúng tôi thực hiện như sau:

$ docker run -i -t -v /var/run:/test ubuntu:latest /bin/bash 

Cho đến nay, tất cả mọi thứ hoạt động tốt và tất cả các thư mục và các tập tin nằm dưới/var/chạy chương trình lên bên trong container trong vòng/kiểm tra.

Bây giờ xem những gì sẽ xảy ra nếu chúng tôi quyết định gắn kết thư mục/var:

$ docker run -i -t -v /var:/test ubuntu:latest /bin/bash 

Tuy nhiên, tất cả các thư mục máy chủ trong/var xuất hiện bên trong/kiểm tra. Tuy nhiên, sau khi cd vào/test/run, các tệp và thư mục từ máy chủ không được hiển thị. Nói cách khác, Docker dường như không làm một 'đệ quy' gắn kết các thư mục con tiếp theo và nội dung của chúng. Đây có phải là hành vi Docker bình thường không?

+0

Tôi không thể tạo lại vấn đề này và hành vi không mong đợi. Phiên bản docker nào bạn đang sử dụng (và trên os nào)? –

+0

Tôi đang chạy Docker 1.12 mới nhất trên Debian Jessie VM trong Virtualbox – pklndnst

+0

Lệnh đầu tiên, ví dụ: cho phép tôi xem docker.sock bên trong thùng chứa được khởi chạy, trong khi lệnh thứ hai chỉ hiển thị các thư mục của thùng chứa trong thư mục/run dir. – pklndnst

Trả lời

5

Đó không chỉ là hành vi Docker thông thường; đó là hành vi thông thường linux. Khi bạn liên kết gắn một hệ thống tập tin vào thư mục khác, như trong:

mkdir /tmp/mount 
mount -o bind /var /tmp/mount 

Bạn sẽ chỉ thấy các file trong nơi gắn kết mà tồn tại trong nguồn hệ thống tập tin. Bạn sẽ không thấy các tập tin chứa trong bất kỳ gắn kết con trừ khi bạn đã rõ ràng ràng buộc gắn kết những thư mục cũng như:

mount -o bind /var/run /tmp/mount/run 

Đây chính là hành vi mà bạn nhìn thấy với Docker vì đây chính là cơ chế tương tự Docker sử dụng để phơi bày các thư mục lưu trữ bên trong các vùng chứa của bạn.

+0

Một điều nữa tôi đã học được về Linux. Cảm ơn nhiều! – pklndnst

+1

là có một cách để có docker rõ ràng có được những gắn kết là tốt? – StuBob

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