Úprava proxy polí v Docker daemon.json pomocí yq v4
Pomocí yq v4 od Mikea Faraha zachovejte stávající nastavení daemonu, vložte proxy řetězce a vytvořte JSON kandidáta k revizi.
Soubor daemon.json už může obsahovat nastavení DNS, úložiště nebo logování. Při změně proxy mají tyto klíče zůstat.
S yq v4 od Mikea Faraha přiřaďte jednotlivá pole a zapište samostatného kandidáta:
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.jsonSeznam HTTP proxy nabízí kandidáty pro obě hodnoty HTTP URL, když veřejný provoz do registry může jít přes veřejné prostředníky; interní výjimky ponechte. strenv čte každou hodnotu jako řetězec. env naopak parsuje hodnoty YAML, což u těchto polí URL a výjimek není potřeba. Název proměnné prostředí uvnitř strenv nemá předponu s dolarem.
Přiřazení tří polí zachová ostatní členy proxies i nesouvisející nastavení nejvyšší úrovně. Volba -o=json udrží výstup ve formátu, který Docker očekává. Jiný program jménem yq může mít jiný jazyk výrazů.
Kandidáta zkontrolujte, než nahradíte aktivní soubor běžným konfiguračním postupem počítače. Zápis přímo zpět do vstupu přes přesměrování shellu ho může zkrátit dřív, než ho yq přečte.
Tato pole s pomlčkou v názvu konfigurují daemon Docker Engine. Docker Desktop používá vlastní nastavení proxy a objekt proxy pro prostředí kontejneru v CLI má jiné schéma.