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-এর কন্টেইনার-পরিবেশ প্রক্সি অবজেক্টের অন্য স্কিমা আছে।

সম্পর্কিত নিবন্ধ