Edit Medan Proksi Docker daemon.json dengan yq v4
Gunakan yq v4 Mike Farah untuk mengekalkan tetapan daemon sedia ada, memasukkan rentetan proksi dan menghasilkan calon JSON yang boleh disemak.
Fail daemon.json mungkin sudah mengandungi tetapan DNS, storan atau log. Apabila menukar proksi, kunci tersebut perlu dikekalkan.
Dengan yq v4 Mike Farah, tetapkan setiap medan secara berasingan dan tulis calon berasingan:
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.jsonSenarai proksi HTTP menawarkan calon untuk kedua-dua nilai URL HTTP apabila trafik registry awam mungkin menggunakan perantara awam; kekalkan pengecualian dalaman. strenv membaca setiap nilai sebagai rentetan. env sebaliknya menghuraikan nilai YAML, yang tidak diperlukan untuk medan URL dan pengecualian ini. Nama pemboleh ubah persekitaran di dalam strenv tidak mempunyai awalan dolar.
Menetapkan tiga medan mengekalkan ahli proxies yang lain serta tetapan peringkat atas yang tidak berkaitan. Pilihan -o=json mengekalkan output dalam format yang dijangka Docker. Program lain bernama yq mungkin mempunyai bahasa ungkapan yang berbeza.
Semak calon sebelum menggantikan fail aktif melalui proses konfigurasi biasa mesin. Menulis terus kembali ke input dengan pengalihan shell boleh memotongnya sebelum yq membacanya.
Nama medan bertanda sempang ini mengkonfigurasi daemon Docker Engine. Docker Desktop menggunakan tetapan proksi sendiri, dan objek proksi persekitaran kontena CLI mempunyai skema lain.