a

Câu hỏi Làm thế nào để thay đổi đăng ký docker mặc định từ docker.io để đăng ký riêng của tôi?


Theo mặc định, nếu tôi phát lệnh:

sudo docker pull ruby:2.2.1

nó sẽ kéo từ trang chính thức docker.io theo mặc định.

Pulling repository docker.io/library/ruby

Làm cách nào để thay đổi nó thành đăng ký riêng tư của tôi. Điều đó có nghĩa là nếu tôi phát hành

sudo docker pull ruby:2.2.1

nó sẽ kéo từ sổ đăng ký riêng của tôi, đầu ra là một cái gì đó như:

Pulling repository my_private.registry:port/library/ruby

67
2017-10-10 13:10


gốc




Các câu trả lời:


CẬP NHẬT: Theo nhận xét của bạn, hiện tại bạn không thể thay đổi sổ đăng ký mặc định, hãy xem vấn đề này để biết thêm thông tin.

Bạn có thể làm điều này, thay thế máy chủ và cổng thành của riêng bạn:

docker pull localhost:5000/registry-demo

Nếu máy chủ ở xa / có auth, bạn có thể cần đăng nhập vào máy chủ bằng:

docker login https://<YOUR-DOMAIN>:8080

Sau đó chạy:

docker pull <YOUR-DOMAIN>:8080/test-image

34
2017-10-10 13:17



docker pull <YOUR-DOMAIN>:8080/test-image được rồi. Nhưng điều tôi muốn là docker pull test-image, đó là không có spesifying DOMAIN và Port mà không cần đăng nhập. - mainframer
Tôi đã cập nhật câu trả lời của tôi dựa trên nhận xét của bạn. Hiện tại, bạn không thể đặt đăng ký mặc định - Guy
Nó không bao giờ có thể trở thành có thể thiết lập một đăng ký mặc định khác nhau, hoặc do nó phá vỡ không gian tên mặc định mà hầu hết các hình ảnh dựa vào - Matt
Họ có thể làm một cái gì đó như @scopes trong npm để giới thiệu các không gian tên mới mà không xung đột với hiện tại. Có tên máy chủ đăng ký bao gồm trong tên hình ảnh làm cho bộ nhớ đệm đăng ký / proxy / khóa xuống bên trong một công ty hoặc dự án khó khăn. Điều này mô tả nó tốt: informit.com/articles/article.aspx?p=2464012&seqNum=3 - Alexander Klimetschek
PR này dường như là cuộc thảo luận gần đây nhất về chủ đề đó: github.com/moby/moby/pull/34319 - Alexander Klimetschek


Nó chỉ ra điều này  thực sự có thể, nhưng không sử dụng phiên bản chính thức của Docker CE hoặc EE.

Bạn có thể sử dụng dĩa dock của Red Hat với cờ '--add-registry' hoặc bạn có thể xây dựng docker từ nguồn mình với registry / config.go được sửa đổi để sử dụng không gian tên / chỉ mục đăng ký mặc định cứng của riêng bạn.


12
2018-01-10 21:26



RedHat của ngã ba là một trong những có sẵn trong centos-extras. Cảm ơn vì đã giúp tôi hiểu tại sao sau khi chuyển sang phiên bản docker.io --add-registry Đã dừng làm việc. - chutz


Có vẻ như nó sẽ không được hỗ trợ do sự phân mảnh mà nó sẽ tạo ra trong cộng đồng (nghĩa là hai người dùng sẽ nhận được các hình ảnh khác nhau kéo ubuntu:latest). Bạn chỉ cần thêm máy chủ ở phía trước tên hình ảnh. Xem này vấn đề github để tham gia thảo luận.

(Lưu ý, đây không phải là ý kiến ​​bình luận, chỉ là một bản tóm tắt ngắn về cuộc thảo luận có thể được theo sau trong vấn đề github đã đề cập.)


6
2018-03-02 01:15



phân mảnh có nhưng chỉ với những ngày đầu của linux cuối cùng đã trở thành chỉ có ba (nguồn cơ sở [arch, gentoo, slax, ...], debian dựa trên debian / ubuntu, và redhat based [enterprise linux, rhel, centos]. Nó sẽ tốt hơn từ quan điểm bảo mật để có thể thay đổi sổ đăng ký ngược dòng mặc định thành thứ tự quản lý. - Dwight Spencer


nếu bạn đang sử dụng distro fedora, bạn có thể thay đổi tệp

/etc/containers/registries.conf

Thêm tên miền docker.io


4
2017-11-06 00:24





Trước đó, điều này có thể đạt được bằng cách sử dụng DOCKER_OPTS bên trong /etc/default/docker tệp cấu hình hoạt động trên Ubuntu 14:04 và có một số vấn đề trên Ubuntu 15:04. Không chắc chắn nếu điều này đã được cố định.

Dòng dưới đây cần phải đi vào tập tin /etc/default/docker trên máy chủ chạy trình quản lý docker. Điểm thay đổi đối với đăng ký riêng tư được cài đặt trong mạng cục bộ của bạn. Lưu ý: bạn sẽ phải khởi động lại dịch vụ docker theo sau sự thay đổi này.

DOCKER_OPTS="--insecure-registry <priv registry hostname/ip>:<port>"

2
2017-10-10 14:01



Cờ '--insecure-registry' cho phép docker kéo từ sổ đăng ký được đặt tên mà không cần xác thực TLS. Nó không có gì để thiết lập một đăng ký mặc định khi không được chỉ định. - Josiah


Chưa thử, nhưng có thể chiếm đoạt quy trình phân giải DNS bằng cách thêm một dòng vào /etc/hosts cho hub.docker.com hoặc một cái gì đó tương tự (docker.io?) có thể làm việc?


0
2018-05-16 11:40



Điều đó sẽ nổ tung trong giai đoạn kết nối; máy chủ bạn kết nối sẽ không có chứng chỉ TLS thích hợp cho miền. - Michael Mol