En daemon.json-fil kan allerede ha DNS-, lagrings- eller logginnstillinger. Når proxyen endres, bør disse nøklene beholdes.

Med Mike Farahs yq v4 setter du hvert felt for seg og skriver en egen kandidat:

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-proxylisten tilbyr kandidater for de to HTTP-URL-verdiene når offentlig registry-trafikk kan bruke offentlige mellomledd; behold de interne unntakene. strenv leser hver verdi som en streng. env tolker i stedet YAML-verdier, som er unødvendig for disse URL- og unntaksfeltene. Miljøvariabelnavnet inne i strenv har ikke dollartegn som prefiks.

Å sette tre felt bevarer de andre medlemmene av proxies og også urelaterte innstillinger på øverste nivå. Valget -o=json holder utdataene i formatet Docker forventer. Et annet program som heter yq kan ha et annet uttrykksspråk.

Gå gjennom kandidaten før du erstatter den aktive filen gjennom maskinens vanlige konfigurasjonsprosess. Skriver du rett tilbake til inndataene med shell-omdirigering, kan filen bli avkortet før yq leser den.

Disse feltnavnene med bindestrek konfigurerer daemonen til Docker Engine. Docker Desktop bruker sine egne proxyinnstillinger, og CLI-ens proxyobjekt for containermiljøet har et annet skjema.

Relaterte artikler