2015-07-13 2 views
0

Я имею в виду Docker Networking#docker0 для настройки docker0 виртуальный мост в Докер.Как cusomize docker0 в Docker для разных диапазонов IP?

Мои ifconfig показывает это:

docker0 Link encap:Ethernet HWaddr d6:0d:76:37:ee:04 
      inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 
      inet6 addr: fe80::d40d:76ff:fe37:ee04/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 B) TX bytes:648 (648.0 B) 

eth0  Link encap:Ethernet HWaddr 08:00:27:51:e4:40 
      inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 
      inet6 addr: fe80::a00:27ff:fe51:e440/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:947 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:618 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:86885 (86.8 KB) TX bytes:71855 (71.8 KB) 

Я хочу, чтобы дать диапазон 10.0.2.15/24 в docker0 интерфейс.

Примечание: Я предполагаю, что если я настроить docker0 с таким же диапазоном IP, что и eth0 затем контейнеры должны получить IP-адрес из тех же диапазона (Пожалуйста, поправьте меня, если я предполагаю, что неправильно)..

Для этого я попытался добавить --fixed-cidr=10.0.2.15/24 в файл /etc/default/docker. Но сейчас он работает.

Любая идея, как ее достичь?

Кроме того, если я следую неправильному пути, пожалуйста, посоветуйте мне, как достичь этого надлежащим образом.

ответ

0

Вместо того, чтобы изменять ip-диапазон вашего интерфейса docker0, вы должны подумать о том, кем хотите быть снаружи.

Если вы хотите, чтобы определенные порты связывались с вашим приложением и были доступны снаружи, взгляните на флаг -p.

docker run -p IP:host_port:container_port 

Посмотрите на документацию для конфигурации сети http://docs.docker.com/articles/networking/

Эта документация также объясняет, как изменить IP-диапазон интерфейса docker0. Однако я думаю, что это другие, лучшие и более простые способы достижения желаемого.

(Не могли бы вы объяснить, что именно вы хотите, кстати?)

0

То, что вы пытаетесь сделать, это граничащие сети самоубийство ... Если докер позволит вам назначить внешний NIC-IP (eth0) к внутренний мост-интерфейс (docker0), ваша система будет иметь два интерфейса, работающих на одном и том же маршруте, но с разными сетями за интерфейсом. Постарайтесь подумать о пост-человеке, который работает в городе, и какой-то гений дал всем улицам одно и то же имя, и все начали подсчитывать цифры в 1. Могли ли он доставить любую почту? ;)

Я предполагаю, что вы хотите достичь, чтобы иметь возможность подключаться к любому контейнеру докера, из «внешней» сети. В этом случае просто добавьте
-p port_on_host:port_inside_container
к вашей
docker run -команде и ваш докер-контент становится доступным для внешнего мира через хост-IP (если ваш брандмауэр настроен правильно)

Приветствия D

Смежные вопросы