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 ਦੇ ਕੰਟੇਨਰ-ਵਾਤਾਵਰਣ ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ ਦੀ ਹੋਰ ਸਕੀਮਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ