У меня есть этот сервер (хост) с 1000 внешних IP-адресов. Я создал докер-контейнер с squid3, и мне нужно использовать эти IP-адреса. Я могу включить пересылку с хоста, но это просто перенаправляет запрос на локальный ip-адрес докера, который портит мои ACL-списки squid, поскольку squid видит внутренний ip вместо внешнего.
Мой вопрос заключается в следующем: как мне играть с docker или lxc (docker имеет директивы lxc через -lxc-conf =), чтобы я мог видеть внешние IP-адреса моего хоста в моем контейнере (например, при запуске ifconfig). Прямо сейчас докер запускается с собственной изолированной сетью, поэтому я не могу использовать ее.
Внешние IP-адреса хоста назначаются интерфейсу p1p1.
Я попытался запустить его с помощью -lxc-conf = "lxc.network.type = Phys" -lxc-conf = "lxc.network.link = p1p1", но это полностью испортило интерфейс моего хоста и даже выбило меня из ssh.
Есть идеи, что я делаю не так?
в трубопровод могу помочь тебе.
Connect a container to a local physical interface
Let's pretend that you want to run two Hipache instances, listening on real interfaces eth2 and eth3, using specific (public) IP addresses. Easy!
pipework eth2 $(docker run -d hipache /usr/sbin/hipache) 50.19.169.157
pipework eth3 $(docker run -d hipache /usr/sbin/hipache) 107.22.140.5
Note that this will use macvlan subinterfaces, so you can actually put multiple containers on the same physical interface.
Думаю, это то, что вам нужно.