Hãy lấy một ví dụ.Dockerfile: tìm hiểu hướng dẫn VOLUME
Sau đây là VOLUME
hướng dẫn cho hình ảnh nginx
:
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
Dưới đây là những câu hỏi của tôi:
Khi bạn bắt đầu container, sẽ các thư mục này hiển thị trên máy chủ của tôi không? Và khi tôi ngừng container, các thư mục sẽ ở lại?
Nếu một số (hoặc tất cả) thư mục này đã tồn tại trong máy chủ của tôi, điều gì sẽ xảy ra? Ví dụ: giả sử hình ảnh đi kèm với tệp cấu hình mặc định trong thư mục
/etc/nginx
của vùng chứa và tôi cũng có tệp cấu hình trong phạm vi/etc/nginx
trên máy chủ của mình. Khi vùng chứa bắt đầu, tệp nào trong số những tệp này sẽ được ưu tiên?Sự khác nhau chính giữa
-v /host/dir:container/dir
vàVOLUME
là gì?
Tài liệu tham khảo:
- https://github.com/dockerfile/nginx/blob/master/Dockerfile
- http://www.tech-d.net/2014/11/03/docker-indepth-volumes/
- How to mount host volumes into docker containers in Dockerfile during build
- http://jpetazzo.github.io/2015/01/19/dockerfile-and-data-in-volumes/
Well done! Ngoài bài viết của bạn, tôi đã tìm thấy các cuộc thảo luận về khối lượng tại [Container42] (http://container42.com/2014/11/03/docker-indepth-volumes/) từ cpuguy83 (Nhà phát triển tại Docker) và thảo luận chi tiết từ [Mark Lamourine] (http://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker.html) đáng kinh ngạc có giá trị. –
Câu trả lời hay, rất hữu ích. Chỉ cần đầu ra của 'kiểm tra docker' thay đổi sau khi docker 1.8. Bây giờ bạn có thể tìm thấy thông tin về khối lượng qua '$ docker inspect -f '{{.Config.Volumes}}' $ ID' và' $ docker inspect -f '{{.Mounts}}' $ ID' – gengmao
@gengmao Cập nhật , cảm ơn. –