Editar los campos de proxy de Docker daemon.json con yq v4
Use yq v4 de Mike Farah para conservar los ajustes existentes del daemon, insertar cadenas de proxy y producir un candidato JSON revisable.
Un archivo daemon.json puede contener ya ajustes de DNS, almacenamiento o registro. Al cambiar el proxy deben conservarse esas claves.
Con yq v4 de Mike Farah, asigne cada campo por separado y escriba un candidato aparte:
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.jsonLa lista de proxies HTTP ofrece candidatos para los dos valores de URL HTTP cuando el tráfico público hacia el registry pueda usar intermediarios públicos; conserve las excepciones internas. strenv lee cada valor como cadena. env, en cambio, analiza valores YAML, algo innecesario para estos campos de URL y de excepción. El nombre de la variable de entorno dentro de strenv no lleva prefijo de dólar.
Asignar tres campos conserva los demás miembros de proxies y también ajustes de nivel superior no relacionados. La opción -o=json mantiene la salida en el formato que Docker espera. Otro programa llamado yq puede tener un lenguaje de expresiones distinto.
Revise el candidato antes de sustituir el archivo activo mediante el proceso de configuración habitual de la máquina. Escribir directamente en la entrada con redirección del shell puede truncarlo antes de que yq lo lea.
Estos nombres de campo con guion configuran el daemon de Docker Engine. Docker Desktop usa sus propios ajustes de proxy, y el objeto de proxy del entorno de contenedor de la CLI tiene otro esquema.