Настройка частной сети Boot2Docker

Как я могу создать частную сеть для док-контейнера boot2docker?

Например, если у меня есть веб-приложение, я могу сделать следующее в Vagrantfile

  myapp1.vm.network "private_network", ip: "1.2.3.4"
  myapp2.vm.network "private_network", ip: "1.2.3.5"
  myapp3.vm.network "private_network", ip: "1.2.3.6"

Затем я могу использовать свой браузер для доступа к моему веб-приложению по адресу

http://1.2.3.4
http://1.2.3.5
http://1.2.3.6

Как я могу легко добиться того же результата в докере?

Я также просмотрел Как предоставить IP-адрес и порт контейнера Docker внешнему хосту Docker без сопоставления портов?

Но в моем boot2docker1.3 он сказал, что интерфейс eth0:1 не существует

Я просмотрел https://docs.docker.com/articles/networking.

Учебник не работает для boot2docker на Mac.

Любая помощь будет оценена по достоинству, спасибо!


person runcode    schedule 04.11.2014    source источник
comment
Что вы хотите сделать с этой сетью? Вы хотите, чтобы он был приватным только для одного контейнера? Вы хотите, чтобы несколько контейнеров могли общаться через него?   -  person Bryan    schedule 04.11.2014
comment
Спасибо, за то, что несколько контейнеров могут общаться друг с другом, я могу связать их вместе --link , я хочу, чтобы у каждого контейнера был свой собственный IP-адрес, чтобы я мог получить доступ к каждому из них извне (как веб-служба)   -  person runcode    schedule 04.11.2014
comment
Все они получат уникальный IP-адрес по умолчанию, но он будет назначен Docker случайным образом, и трафик не будет направляться на него извне. Вы можете использовать github.com/zettio/weave, чтобы решить эти проблемы с помощью "attach" и "expose". ' Особенности. (Примечание: я работаю на Зеттио)   -  person Bryan    schedule 04.11.2014
comment
но этот ip-контейнер Docker не может получить доступ с моего хоста (браузер Mac), я могу сделать некоторое сопоставление портов, чтобы сопоставить его с хостом, но это не то, что я хочу, я хочу, чтобы каждый контейнер (как веб-приложение) имел IP-адрес, который я может получить доступ через браузер напрямую вместо использования сопоставления с IP-адресом хоста boot2docker   -  person runcode    schedule 04.11.2014
comment
О, вы используете Boot2Docker на Mac? Это усложняет ситуацию, поскольку есть два хоста — Mac и виртуальная машина VirtualBox.   -  person Bryan    schedule 04.11.2014
comment
Я обновил вопрос, я думаю, что это больше похоже на проблему с маршрутизацией или настройкой NAT. Я не знаю, мне просто нужно несколько руководств, у меня мало информации по настройке сетевых материалов.   -  person runcode    schedule 04.11.2014


Ответы (1)


Я полагаю, что инструкции здесь связаны с этот вопрос дайте то, что вы ищете. Ключ в этой строке:

sudo route -n add 172.17.0.0/16 172.16.0.11

который сообщает вашему Mac, как маршрутизировать к частной сети внутри виртуальной машины VirtualBox, в которой находятся контейнеры Docker. (Очевидно, что конкретные адреса могут измениться для вашей конкретной ситуации)

Это по-прежнему не дает вам возможности назначать определенные IP-адреса определенным контейнерам; как я уже сказал, надстройка, такая как weave, может это сделать. (примечание: работаю на плетении)

Вам также может понравиться эта статья, которая дает начальный обзор того, как работает Boot2Docker, и иллюстрирует, как у вас есть IP-адреса внутри виртуальной машины VirtualBox, а также IP-адрес этого блока в целом.

person Bryan    schedule 05.11.2014