Dockerin daemon.json-tiedoston proxy-kenttien muokkaus yq v4:llä
Käytä Mike Farahin yq v4:tä säilyttääksesi nykyiset daemon-asetukset, lisätäksesi proxy-merkkijonot ja tuottaaksesi tarkistettavan JSON-ehdokkaan.
daemon.json-tiedostossa voi jo olla DNS-, tallennus- tai lokiasetuksia. Proxyä vaihdettaessa nämä avaimet on säilytettävä.
Mike Farahin yq v4:llä aseta yksittäiset kentät ja kirjoita erillinen ehdokas:
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.jsonHTTP-proxylista tarjoaa ehdokkaita kahdelle HTTP-URL-arvolle, kun julkinen registry-liikenne voi käyttää julkisia välittäjiä; säilytä sisäiset poikkeukset. strenv lukee jokaisen arvon merkkijonona. env sen sijaan jäsentää YAML-arvot, mikä ei ole tarpeen näille URL- ja poikkeuskentille. strenv-kohdan sisällä olevassa ympäristömuuttujan nimessä ei ole dollarimerkkiä edessä.
Kolmen kentän asettaminen säilyttää proxies-kohdan muut jäsenet sekä riippumattomat ylätason asetukset. -o=json-valinta pitää tulosteen muodossa, jota Docker odottaa. Toisella yq-nimisellä ohjelmalla voi olla erilainen lausekekieli.
Tarkista ehdokas ennen kuin korvaat aktiivisen tiedoston koneen tavallisella konfigurointiprosessilla. Suoraan syötteeseen takaisin kirjoittaminen shellin uudelleenohjauksella voi katkaista sen ennen kuin yq lukee sen.
Nämä yhdysmerkilliset kenttänimet määrittävät Docker Enginen daemonin. Docker Desktop käyttää omia proxy-asetuksiaan, ja CLI:n konttiympäristön proxy-objektilla on toinen skeema.