VPN маршрутизирует ВСЕ сетевой трафик через шлюз VPN
Вы, вероятно, правы, и в этом случае весь трафик, перенаправленный с клиента Docker на демон Docker, также будет проходить через VPN.Когда вы используете Docker CLI в Windows, он подключится к демону Docker, доступному через сеть.Использование VPN может нарушить этот механизм.
Я думаю, что происходит:
- Когда VPN отключен, вы используете демон Docker на своей машине, и все работает
- Когда VPN включен, другой DockerДемон используется либо потому, что ваш трафик перенаправления VPN адресован вашему хосту Docker (
127.0.0.1
по умолчанию или установлен через флаг -H
или DOCKER_HOST
переменная env ).Это означает, что каким-то образом этот IP-адрес или хост существует в вашей сети VPN, и на нем прослушивается демон Docker (что, как ни странно, использование этого демона может быть рискованным)
Если этона самом деле, вы наверняка увидите другой результат от docker ps -a
, docker images
и т. д., потому что вы подключаетесь к разным демонам.(демон, доступный через ваш VPN, фактически принадлежит кому-то другому, вам лучше его не использовать!)
Что вы можете сделать:
Не маршрутизировать 127.0.0.1(или все, что настроено в качестве хоста Docker) через VPN
Действие, которое необходимо выполнить, будет зависеть от используемого вами программного обеспечения VPN, или вы можете добавить маршрут непосредственно на вашем компьютере с Windows ( здесьхорошая статья по теме)
Узнайте свой IP при включенном VPN и настройте Daemon для прослушивания этого IP
- Когда ваш VPNвключен, запустите
ipconfig /all
и найдите интерфейс, используемый вашей VPN, и его IP-адрес, например 10.142.0.12
(вы можете сравнить выходные данные до / после включения VPN, чтобы определить, какой он есть) - Конфигурировать вашДемон Docker прослушивает этот IP-адрес и перезапускает его.Либо используйте пользовательский интерфейс , либо в Windows файл конфигурации по умолчанию расположен в
%programdata%\docker\config\daemon.json
, например, необходимо указать "hosts": ["10.142.0.12", "127.0.0.1"]
( подробности см. В документах ) - Настройте хост Docker на
10.142.0.12
, когда VPN включен, либо установив переменную среды DOCKER_HOST=10.142.0.12
, либо с помощью клиента docker -H 10.142.0.12 <cmd>
/! \ Примечание о безопасности: это может привести кпроблема безопасности, так как любой, кто знает ваш IP в сети VPN, сможет использовать демон на вашем компьютере
Надеюсь, это поможет.Я не эксперт по Windows, поэтому я не смог подробно рассказать о проблемах, связанных с Windows, но не стесняйтесь спрашивать подробности, если это необходимо.