daemon.json फ़ाइल में पहले से DNS, स्टोरेज या लॉगिंग सेटिंग्स हो सकती हैं। प्रॉक्सी बदलते समय वे कुंजियाँ सुरक्षित रहनी चाहिए।

Mike Farah के yq v4 से हर फ़ील्ड अलग असाइन करें और एक अलग उम्मीदवार लिखें:

http_proxy='http://proxy.example:8080' \
https_proxy='http://proxy.example:8080' \
no_proxy='localhost,127.0.0.1,.internal.example' \
yq -o=json '
  .proxies."http-proxy" = strenv(http_proxy) |
  .proxies."https-proxy" = strenv(https_proxy) |
  .proxies."no-proxy" = strenv(no_proxy)
' /etc/docker/daemon.json > daemon.proxy-candidate.json

HTTP प्रॉक्सी सूची दोनों HTTP URL मानों के लिए उम्मीदवार देती है, जब सार्वजनिक registry ट्रैफ़िक सार्वजनिक मध्यस्थों का उपयोग कर सकता हो; आंतरिक बायपास रखें। strenv हर मान को स्ट्रिंग के रूप में पढ़ता है। env इसके बजाय YAML मानों को पार्स करता है, जो इन URL और बायपास फ़ील्ड के लिए अनावश्यक है। strenv के अंदर पर्यावरण चर के नाम में डॉलर उपसर्ग नहीं होता।

तीन फ़ील्ड असाइन करने से proxies के अन्य सदस्य तथा असंबंधित शीर्ष-स्तरीय सेटिंग्स सुरक्षित रहती हैं। -o=json विकल्प आउटपुट को उसी प्रारूप में रखता है जिसकी Docker अपेक्षा करता है। yq नाम का दूसरा प्रोग्राम भिन्न व्यंजक भाषा रख सकता है।

मशीन की सामान्य कॉन्फ़िगरेशन प्रक्रिया से सक्रिय फ़ाइल बदलने से पहले उम्मीदवार की समीक्षा करें। shell रीडायरेक्शन से सीधे इनपुट में वापस लिखने पर yq के पढ़ने से पहले ही फ़ाइल कट सकती है।

ये हाइफ़न वाले फ़ील्ड नाम Docker Engine के daemon को कॉन्फ़िगर करते हैं। Docker Desktop अपनी प्रॉक्सी सेटिंग्स उपयोग करता है, और CLI के कंटेनर-पर्यावरण प्रॉक्सी ऑब्जेक्ट की अन्य स्कीमा है।

संबंधित लेख