Thêm đăng ký không an toàn vào Docker


107

Tôi có một docker 1.12 chạy trên CentOS. Tôi đang cố gắng thêm sổ đăng ký không an toàn vào nó và những thứ được đề cập trong tài liệu không hoạt động. Hệ thống sử dụng systemdnên tôi đã tạo một /etc/systemd/system/docker.service.d/50-insecure-registry.conftệp.

$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'

Sau khi tải daemon và khởi động lại dịch vụ docker, systemd cho thấy rằng biến môi trường ở đó

$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"

Nhưng khi tôi chạy, docker infotôi không thấy sổ đăng ký không an toàn đó được thêm vào

$ docker info
........
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
    127.0.0.0/8

Đẩy hình ảnh hostaneme.cloudapp.netkhông thành công với

Pushing application     (hostname.cloudapp.net:5000/application:latest)...
The push refers to a repository     [hostname.cloudapp.net:5000/mozart_application]
ERROR: Get https://hostname.cloudapp.net:5000/v1/_ping: http: server gave HTTP response to HTTPS client

Có điều gì đó có thể được thực hiện? Tui bỏ lỡ điều gì vậy ?

CẬP NHẬT

Đã giải quyết vấn đề bằng cách thêm tệp /etc/docker/daemon.jsoncó nội dung sau

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

Và sau đó khởi động lại docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Sau khi đăng ký không an toàn đó hostname.cloudapp.net:500hoạt động.


4
Mặc dù ai đó đã đánh bại bạn trong trường hợp này (sau khi cho bạn một thời gian gia hạn rộng rãi), thì đây sẽ là một trường hợp tuyệt vời để tự trả lời.
BlackVegetable

2
thông minh! Tôi gặp thông báo lỗi này khi "oc cluster up" với Openshift javamonamour.org/2017/12/docker-insecure-registry.html và bản sửa lỗi của bạn đã giải quyết được vấn đề này!
Pierluigi Vernetto

2
Tôi biết bạn đã yêu cầu điều này một cách rõ ràng liên quan đến CentOS trong câu hỏi của bạn, nhưng đối với bất kỳ ai đến đây tìm kiếm giải pháp macOS như tôi đã làm, điều đó có thể được thực hiện thông qua GUI ngay bây giờ, như đã đề cập trong câu trả lời cho câu hỏi này .
khác

Câu trả lời:


135

(Đang sao chép câu trả lời từ câu hỏi)

Để thêm sổ đăng ký docker không an toàn, hãy thêm tệp /etc/docker/daemon.jsoncó nội dung sau:

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

và sau đó khởi động lại docker.


3
Tôi tin rằng đó là giải pháp phù hợp trên debian-like. Trên Red Hat thích, bạn muốn thêm nó vào /etc/sysconfig/dockerlàm một trong các tùy chọn, ví dụ từ cài đặt Openshift: OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' Trên Suse-likes, tôi không biết.
erikbwork

Trên DigitalOcean, hình ảnh Docker 1 lần nhấp vẫn cho rằng sử dụng DOCKER_OPTS so với daemon.jsonphiên bản tệp. Cảm ơn!
Eric Pugh

@erikbwork Trên Fedora 28 với Docker 1.13.1 từ kho gói mặc định, cách tiếp cận với /etc/docker/daemon.jsonhoạt động tốt.
nút khác

7
không thể khởi động lại docker sau khi tạo daemon.json này, hiển thị lỗi: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. @matt
AATHITH RAJENDRAN

Cảm ơn, Nó hoạt động. Trong trường hợp có thể không có cổng vì có cổng 80 {"
secure

16

Tạo tệp /etc/docker/daemon.json và thêm nội dung bên dưới rồi thực hiện khởi động lại docker trên CentOS 7 đã giải quyết được sự cố.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

12

Giải pháp với /etc/docker/daemon.jsontệp không hoạt động với tôi trên Ubuntu.

Tôi đã có thể định cấu hình đăng ký không an toàn Docker trên Ubuntu bằng cách cung cấp các tùy chọn dòng lệnh cho daemon Docker trong /etc/default/dockertệp, ví dụ:

# /etc/default/docker    
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"

Cách tương tự có thể được sử dụng để định cấu hình thư mục tùy chỉnh cho hình ảnh docker và dung lượng lưu trữ, máy chủ DNS mặc định, v.v.

Bây giờ, sau khi daemon Docker đã khởi động lại (sau khi thực thi sudo service docker restart), việc chạy docker infosẽ hiển thị:

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8

1

Đối với tôi, giải pháp là thêm sổ đăng ký vào đây:

/ etc / sysconfig / docker-registerries

DOCKER_REGISTRIES=''
DOCKER_EXTRA_REGISTRIES='--insecure-registry  b.example.com'

0

Nếu bạn đã có tệp config.json thì tệp cuối cùng sẽ trông giống như thế này ... Đây registry.myprivate.comlà tệp đang gây ra sự cố cho tôi.

{ "auths": { "https://index.docker.io/v1/": { "auth": "xxxxxxxxxxxxxxxxxxxx==" }, "registry.myprivate.com": { "auth": "xxxxxxxxxxxxxxxxxxxx=" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.8 (linux)" }, "insecure-registries" : ["registry.myprivate.com"] }

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.