2015-01-06 23 views
7

Tôi có hai máy chủ và docker được cài đặt trong mỗi máy.Cách chia sẻ hình ảnh giữa nhiều máy chủ lưu trữ docker?

Như chúng ta biết, mỗi trình lưu trữ sẽ lưu trữ hình ảnh trong thư mục /var/lib/docker cục bộ.

Vì vậy, nếu tôi muốn sử dụng một số hình ảnh, chẳng hạn như ubuntu, tôi phải thực hiện docker pull để tải xuống từ internet trong mỗi máy chủ.

Tôi nghĩ nó chậm.

Tôi có thể lưu trữ hình ảnh trong mảng đĩa được chia sẻ không? Sau đó, có một số máy chủ kéo hình ảnh một lần, cho phép mọi máy chủ, với quyền truy cập vào đĩa được chia sẻ, để sử dụng hình ảnh trực tiếp.

Có thể thực hành tốt hay không? Tại sao docker không được thiết kế như thế này?

Nó có thể cần phải hack mã nguồn của đế chế để thực hiện việc này.

Trả lời

0

Các bạn đã nhìn bài viết này

Dockerizing một Apt-cacher-ng Dịch vụ

http://docs.docker.com/examples/apt-cacher-ng/

chiết xuất

chứa này làm cho việc tải xuống thứ hai của bất kỳ gói gần như ngay lập tức.

Ít nhất một nút sẽ rất nhanh và tôi nghĩ rằng có thể nói cho nút thứ hai sử dụng bộ nhớ cache của nút đầu tiên.

Edit: bạn có thể chạy registry của riêng bạn, với một lệnh tương tự như

sudo docker run -p 5000:5000 registry

thấy

https://github.com/docker/docker-registry

+1

Tôi nghĩ đây là bộ nhớ cache apt, nó lưu trong bộ nhớ cache tệp 'apk'. Làm thế nào nếu tôi có nhiều hình ảnh khác nhau, chẳng hạn như ubuntu, debian, redhat, centos, wordpress node.js và như vậy? Vì vậy, nhiều hình ảnh, tôi cần phải kéo hình ảnh lần đầu tiên trên mỗi máy chủ. – NingLee

+1

Cảm ơn câu trả lời của bạn. Nhưng tôi nghĩ nó vẫn lãng phí không gian đĩa. Ví dụ, tôi có 100 host, và một docker-registry, sau đó mỗi host và docker-registry phải có một bản sao trong mỗi. Có 101 hình ảnh. Nếu hình ảnh trên mảng đĩa được chia sẻ, chỉ có một bản sao là đủ. – NingLee

0

Update trong 2016/01/25 Docker tính năng gương bị phản

Vì vậy, câu trả lời này không áp dụng hiện nay, để lại để tham khảo

Cũ thông tin

Những gì bạn cần là chế độ gương cho registry Docker, xem https://docs.docker.com/v1.6/articles/registry_mirror/

Nó được hỗ trợ trực tiếp từ docker-registry

Chắc chắn bạn có thể sử dụng dịch vụ gương công cộng tại địa phương.

+0

Tôi thấy 'docker registry', tôi nghĩ rằng vẫn còn hai vấn đề: 1) Nó có thể tránh tải hình ảnh từ internet, nhưng vẫn cần phải tải về từ mạng nội bộ. 2) Mỗi ​​máy chủ chạy docker daemon, cần lưu trữ một bản sao của hình ảnh. Nếu mảng đĩa được chia sẻ có thể được sử dụng, một bản tải xuống và sử dụng ở bất cứ đâu và một bản sao hình ảnh trên đĩa được chia sẻ là đủ. – NingLee

+0

có thể được sử dụng như u nêu, sau đó bạn mất hầu hết sức mạnh của docker. Khi bạn làm việc cho docker nhiều hơn, bạn sẽ thích sử dụng docker registry. –

+0

cũng docker là chế độ máy khách/máy chủ, có thể chạy một máy chủ với thư mục được chia sẻ. –

0

Điều bạn đang cố gắng thực hiện không được giả định là hoạt động như được giải thích bởi cpuguy83 tại số github/docker issue này.

Thật vậy:

Người tài xế lưu trữ cơ bản sẽ cần phải đồng bộ hóa truy cập.

Chia sẻ /var/lib/docker là xa not enough and won't work!

Theo doc.docker.com/registry:

Bạn nên sử dụng Registry nếu bạn muốn:

  • kiểm soát chặt chẽ nơi hình ảnh của bạn đang được lưu trữ
  • hoàn toàn sở hữu đường ống phân phối hình ảnh của bạn
  • tích hợp lưu trữ và phân phối hình ảnh chặt chẽ vào quy trình phát triển nội bộ của bạn

Vì vậy, tôi đoán rằng đây là tùy chọn tốt nhất (/ bạn) để làm việc này (nhưng I guess that you got that info - Tôi chỉ thêm nó ở đây để cập nhật chi tiết).

Chúc may mắn!

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