ডকারে অনিরাপদ রেজিস্ট্রি যুক্ত করুন


107

আমার সেন্টোস-এ চালানো একটি ডকার 1.12 রয়েছে। আমি এটিতে নিরাপত্তাহীন রেজিস্ট্রি যুক্ত করার চেষ্টা করছি এবং ডকুমেন্টেশনে উল্লিখিত জিনিসগুলি কার্যকর হয় না। সিস্টেমটি ব্যবহার করে systemdতাই আমি একটি /etc/systemd/system/docker.service.d/50-insecure-registry.confফাইল তৈরি করি ।

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

ডেমন লোড করা এবং ডকার পরিষেবা পুনরায় চালু করার পরে, সিস্টেমড দেখায় যে পরিবেশের পরিবর্তনশীল রয়েছে

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

তবে আমি যখন চালনা docker infoকরি তখন দেখি না যে অনিরাপদ রেজিস্ট্রি যুক্ত হয়েছে

$ 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

ইমেজ পুশ করে hostaneme.cloudapp.netব্যর্থ হয়

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

এমন কিছু আছে যা করা যায়? আমি কিছু অনুপস্থিত করছি ?

হালনাগাদ

/etc/docker/daemon.jsonনিম্নলিখিত বিষয়বস্তু সহ একটি ফাইল যুক্ত করে সমস্যার সমাধান করেছেন

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

এবং তারপরে ডকার পুনরায় চালু করুন

sudo systemctl daemon-reload
sudo systemctl restart docker

এর পরে অনিরাপদ রেজিস্ট্রি hostname.cloudapp.net:500কাজ করে।


4
এই ক্ষেত্রে কেউ আপনাকে মারধর করার সময় (আপনাকে একটি উদার অনুগ্রহকালীন সময় দেওয়ার পরে), স্ব-উত্তরের জন্য এটি একটি দুর্দান্ত কেস হত।
ব্ল্যাকজেটযোগ্য

2
চমৎকার! আমার এই ত্রুটি বার্তাটি ওপেনশিফ্ট জাভামোনামুর.আর / ২০১7 / ২০১২ / ১২ / ডকার- ইনসিকিউর- রেজিস্ট্রি এইচটিএমএল সহ "ক্লাস্টার আপ" করার সময় হয়েছিল এবং আপনার ফিক্সটি এটিকে সমাধান করেছে!
পিয়েরলুইগি ভার্নেট্টো

2
আমি জানি যে আপনি আপনার প্রশ্নের সেন্টোসের সাথে আপনি স্পষ্টভাবে এ জন্য জিজ্ঞাসা করেছিলেন, তবে যে কেউ এখানে এসেছেন আমার মতো ম্যাকোস সমাধান খুঁজছেন, এটি এখন জিইউআইয়ের মাধ্যমে করা যেতে পারে, যেমন এই প্রশ্নের উত্তরে বর্ণিত হয়েছে ।
আরেকটিডে

উত্তর:


135

(প্রশ্ন থেকে উত্তর অনুলিপি করা)

একটি অনিরাপদ ডকার রেজিস্ট্রি যুক্ত করতে /etc/docker/daemon.json, নিম্নলিখিত বিষয়বস্তু সহ ফাইলটি যুক্ত করুন :

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

এবং তারপরে ডকার পুনরায় চালু করুন।


3
আমি বিশ্বাস করি এটি ডেবিয়ান-লাইকের সঠিক সমাধান। রেড হ্যাট পছন্দ করে আপনি এটিকে /etc/sysconfig/dockerবিকল্পগুলির মধ্যে একটি হিসাবে যুক্ত করতে চান , যেমন একটি ওপেনশিফ্ট ইনস্টলেশন থেকে: সুস OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' - লাইসে আমি জানি না।
এরিকবওয়ার্ক

ডিজিটাল ওশেনে, 1 ক্লিক ডকার চিত্রটি এখনও মনে করে যে daemon.jsonফাইল সংস্করণ বনাম DOCKER_OPTS ব্যবহার করুন। ধন্যবাদ!
এরিক পুগ

ডিফল্ট প্যাকেজ রিপোস থেকে ডেরার ১.১১.১ এর সাথে ফেডোরা ২৮ এ @ এরিক্ব ওয়ার্ক করুন, অ্যাডপ্রোচটি /etc/docker/daemon.jsonভাল কাজ করে।
আরেকটি নোড

7
এই ডেমন.জেসন তৈরি করার পরে ডকার পুনরায় আরম্ভ করতে পারে না, ত্রুটি দেখিয়ে: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. @ ম্যাট
আথিত রাজেন্দ্রান

ধন্যবাদ, এটি কাজ করে। বন্দর ব্যতীত ক্ষেত্রে হতে পারে কারণ সে বন্দরের 80 {"অনিরাপদ-রেজিস্ট্রেশনগুলি": ["হোস্টনেম.ক্লাউডআপ.
net

16

/Etc/docker/daemon.json ফাইল তৈরি করা এবং নীচের বিষয়বস্তু যুক্ত করা এবং তারপরে CentOS 7 এ ডকার পুনরায় চালু করার ফলে সমস্যার সমাধান হয়েছে।

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

12

/etc/docker/daemon.jsonফাইলটির সাথে সমাধানটি উবুন্টুতে আমার পক্ষে কার্যকর হয়নি।

আমি /etc/default/dockerফাইলটিতে ডকার ডিমনকে কমান্ড লাইন বিকল্প সরবরাহ করে উবুন্টুতে ডকার নিরাপত্তাহীন নিবন্ধগুলি কনফিগার করতে সক্ষম হয়েছি :

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

ডকার ইমেজ এবং ভলিউম স্টোরেজ, ডিফল্ট ডিএনএস সার্ভার ইত্যাদির জন্য কাস্টম ডিরেক্টরি কনফিগার করতে একই পদ্ধতি ব্যবহার করা যেতে পারে ..

এখন, ডকার ডিমন পুনরায় চালু করার পরে (সম্পাদন করার পরে sudo service docker restart), দৌড়াতে প্রদর্শিত docker infoহবে:

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

1

আমার জন্য সমাধানটি এখানে রেজিস্ট্রি যুক্ত করা ছিল:

/ Etc / sysconfig / Docker-রেজিষ্ট্রিসমূহ

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

0

আপনার যদি ইতিমধ্যে একটি কনফিগার.জেসন ফাইল থাকে তবে চূড়ান্ত ফাইলটি দেখতে এমন কিছু হওয়া উচিত ... এখানে registry.myprivate.comএকটি যা আমাকে সমস্যা দিচ্ছিল।

{ "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"] }

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.