Datoteka daemon.json lahko že vsebuje nastavitve DNS, shrambe ali beleženja. Pri spremembi proxyja je treba te ključe ohraniti.

Z yq v4 Mikea Faraha dodelite posamezna polja in zapišite ločenega kandidata:

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

Seznam proxyjev HTTP ponuja kandidate za obe vrednosti URL HTTP, ko lahko javni promet do registry uporablja javne posrednike; obdržite notranje izjeme. strenv vsako vrednost prebere kot niz. env pa razčlenjuje vrednosti YAML, kar za ta polja URL in izjem ni potrebno. Ime okoljske spremenljivke znotraj strenv nima predpone z dolarjem.

Dodelitev treh polj ohrani druge člane proxies in tudi nepovezane nastavitve najvišje ravni. Možnost -o=json ohrani izhod v obliki, ki jo Docker pričakuje. Drug program z imenom yq ima lahko drugačen jezik izrazov.

Preglejte kandidata, preden zamenjate aktivno datoteko z običajnim postopkom konfiguracije na stroju. Pisanje neposredno nazaj v vhod s preusmeritvijo lupine ga lahko skrajša, preden ga yq prebere.

Ta imena polj z vezajem konfigurirajo daemon Docker Engine. Docker Desktop uporablja svoje proxy nastavitve, objekt proxyja za okolje vsebnika v CLI pa ima drugo shemo.

Sorodni članki