Контейнер Docker macvlan не имеет доступа к Интернету при запуске Tailscale на хосте
Мне нужен контейнер Docker, который будет виден в хост-сети со своим собственным IP-адресом, Mac и именем хоста, объявленным через avahi. (Я хочу использовать Wire-Pod без изменения имен хостов и прочего на моем хост-компьютере)
Для этого я создал сеть Docker, например:
networks:
wirepod_net:
driver: macvlan
driver_opts:
parent: "enp4s0"
ipam:
config:
- subnet: "192.168.10.0/24"
gateway: "192.168.10.1"
и дал контейнеру соответствующий IP-адрес и Mac-адрес
mac_address: "9C:EE:7D:1A:0F:E8"
networks:
wirepod_net:
ipv4_address: "192.168.10.11"
Это работает совершенно нормально и именно так, как я хотел.
НО я недавно установил Tailscale на свой хост, и пока Tailscale работает, контейнер НЕ имеет доступа к Интернету.
Я некоторое время искал это в Google, но каждая проблема, близкая к моей, требует только включения связи между хостом и контейнером. И я попробовал это, потому что подумал, что, возможно, это все-таки та же проблема. Но, к сожалению, это не помогло моей проблеме «контейнер не может получить доступ к Интернету». (Или я сделал это неправильно; я не могу этого исключать...)
Эта проблема немного выше моего понимания, поэтому я ценю каждую помощь, которую получаю.
Я внимательно прочитал и проследил за этими сообщениями:
- https://forum.tailscale.com/t/problem-with-tailscale-subnet-and-container-in-a-macvlan-network/1565 Насколько я понимаю, основное внимание уделяется доступу к контейнеру macvlan через Tailscale.
- https://stackoverflow.com/questions/42083546/docker-macvlan-network-unable-to-access-internet Не применяется, поскольку Интернет работает нормально только с помощью Tailscale, возникает проблема.
1 ответ
Итак, я понял, что проблема не в интернет-соединении в целом.
Проблема заключалась в разрешении DNS.
Я исправил это, явно установив DNS-сервер в моем контейнере Docker с помощью
dns:
- 1.1.1.1
- 1.0.0.1
раздел об уровне обслуживания.
Это решило проблемы, которые у меня были.