Редактиране на прокси полетата в Docker daemon.json с yq v4
Използвайте yq v4 на Mike Farah, за да запазите съществуващите настройки на daemon, да вмъкнете прокси низове и да създадете JSON кандидат за преглед.
Файлът daemon.json може вече да съдържа настройки за DNS, съхранение или журналиране. При промяна на проксито тези ключове трябва да се запазят.
С yq v4 на Mike Farah задайте отделните полета и запишете отделен кандидат:
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Списъкът с HTTP проксита предлага кандидати за двете стойности на HTTP URL, когато публичният трафик към registry може да минава през публични посредници; запазете вътрешните изключения. strenv чете всяка стойност като низ. env вместо това анализира YAML стойности, което не е нужно за тези полета за URL и изключения. Името на променливата на средата вътре в strenv няма префикс с долар.
Задаването на три полета запазва останалите членове на proxies, както и несвързаните настройки от най-горно ниво. Опцията -o=json оставя изхода във формата, който Docker очаква. Друга програма, наречена yq, може да има различен език за изрази.
Прегледайте кандидата, преди да замените активния файл чрез нормалния процес за конфигуриране на машината. Писането директно обратно във входа чрез пренасочване на shell може да го отреже, преди yq да го прочете.
Тези имена на полета с тирета конфигурират daemon на Docker Engine. Docker Desktop използва собствени прокси настройки, а прокси обектът за средата на контейнера в CLI има друга схема.