'n daemon.json-lêer kan reeds DNS-, berging- of loginstellings bevat. Wanneer die proxy verander word, moet daardie sleutels behoue bly.

Met Mike Farah se yq v4 ken jy die afsonderlike velde toe en skryf 'n aparte kandidaat:

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

Die HTTP-proxylys bied kandidate vir die twee HTTP-URL-waardes wanneer openbare registry-verkeer openbare tussengangers mag gebruik; behou die interne omseilroetes. strenv lees elke waarde as 'n string. env ontleed eerder YAML-waardes, wat vir hierdie URL- en omseilvelde onnodig is. Die omgewingsveranderlike se naam binne strenv het geen dollar-voorvoegsel nie.

Deur drie velde toe te ken, bly ander lede van proxies sowel as onverwante topvlak-instellings behoue. Die -o=json-opsie hou die uitvoer in die formaat wat Docker verwag. 'n Ander program met die naam yq kan 'n ander uitdrukkingstaal he.

Gaan die kandidaat na voordat jy die aktiewe lêer deur die masjien se normale konfigurasieproses vervang. Om direk na die invoer terug te skryf met shell-herleiding kan dit afkap voordat yq dit lees.

Hierdie koppelteken-veldname configureer Docker Engine se daemon. Docker Desktop gebruik sy eie proxy-instellings, en die CLI se container-omgewing-proxy-objek het 'n ander skema.

Verwante artikels