Мне нужно запускать Docker-compose сети за корпоративным прокси, но из-за прокси, доступ между службами часто заканчивается маршрутизацией через прокси, который, очевидно, не знает о них.
ДляНапример, это docker-compose.yml
:
version: '3.4'
services:
webserver:
image: nginx
webtest:
image: alpine
command: sh -c "sleep 1 && wget -O - http://webserver"
Сбой, потому что wget
запрашивает корпоративный прокси-сервер о webserver
и не указывает на созданную мной службу:
$ docker-compose up
Starting dgx-docker-network-test_webtest_1 ... done
Starting dgx-docker-network-test_webserver_1 ... done
Attaching to dgx-docker-network-test_webtest_1, dgx-docker-network-test_webserver_1
webtest_1 | Connecting to proxy.blah.blah.blah:8080 (xx.xx.xx.xx:8080)
webtest_1 | wget: server returned error: HTTP/1.1 307 Temporarily Moved for Domain Name Expansion
Если я изменю команду на инструменты, которые не используют прокси, такие как ping
, она будет работать нормально:
$ docker-compose up
Starting dgx-docker-network-test_webserver_1 ... done
Starting dgx-docker-network-test_webtest_1 ... done
Attaching to dgx-docker-network-test_webserver_1, dgx-docker-network-test_webtest_1
webtest_1 | PING webserver (172.18.0.2): 56 data bytes
webtest_1 | 64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.090 ms
webtest_1 | 64 bytes from 172.18.0.2: seq=1 ttl=64 time=0.095 ms
webtest_1 | 64 bytes from 172.18.0.2: seq=2 ttl=64 time=0.076 ms
webtest_1 | 64 bytes from 172.18.0.2: seq=3 ttl=64 time=0.072 ms
webtest_1 |
webtest_1 | --- webserver ping statistics ---
webtest_1 | 4 packets transmitted, 4 packets received, 0% packet loss
webtest_1 | round-trip min/avg/max = 0.072/0.083/0.095 ms
dgx-docker-network-test_webtest_1 exited with code 0
Итак, каков наилучший способ настроить это так, чтобы прокси игнорировались, когдапытаясь получить доступ к Docker-составить запущенные службы?Есть ли способ для docker-compose автоматически добавить службы в переменную окружения no_proxy
, создаваемую из ~/.docker/config.json
?