2016-06-01 3 views
0

Попытка ознакомиться с докер-Compose версии 2 и по существу только установка на 2 простой узел кластера, который может обнаруживать друг другаслужба докер-Compose и сеть

дал

. 
|-- docker-compose.yml 
|-- node1 
| `-- Dockerfile 
|-- node2 
| `-- Dockerfile 

и Dockerfile как

FROM centos:centos6.6 

и докер-compose.yml, как

version: '2' 
services: 
    dn1: 
    build: ./node1/. 
    hostname: dn1.foo.com 
    command: tail -f /dev/null 
    dn2: 
    build: ./node2/. 
    hostname: dn2.foo.com 
    command: tail -f /dev/null 

на управлении

docker-compose up -d 
docker exec -it test_dn1_1 bash 
$ hostname 
dn1.foo.com 
$ ping dn2.foo.com 
PING dn2.foo.com (23.x.x.122) 
$ ping dn1 
64 bytes from test_dn2_1.test_default (172.21.0.3) .... 

ли услуги обнаруживаемым по умолчанию внутри контейнеров? Да? от here

Я предполагал, что атрибут «ссылки» должен был сообщать контейнерам друг о друге.

Как явным образом настроить docker-compose.yaml так, чтобы контейнеры могли открывать друг друга с помощью «hostname»? Пробовал ссылки, но это также не работает.

Благодаря

ответ

0

Я не уверен, я понимаю вашу проблему: при использовании докера-создание сообщения версии 2, как вы делали, когда вы звоните docker-compose up -d ваши контейнеры созданы, и пользовательские сети создаются, а, в которую ваш сервисные контейнеры.

Изнутри этой сети контейнеры являются доступными и открываемыми через их сервисное имя.

Smth беспокоит меня, хотя, но я предполагаю, что это опечатка: если вы создали услуги dn1 и dn2, как вы сделали, и вы находитесь в каталоге test, то ваши контейнеры должны быть названы test_dn1_1 и test_dn2_1 и не test_dn1 как вы написали.
Нет, я полагаю, это опечатка.

Таким образом, вы можете проверить с помощью docker network ls, что существует сеть, созданная под названием test_default, и если вы запустите docker network inspect test_default, вы найдете два своих контейнера.

Теперь, изнутри test_dn1_1, вы можете запустить ping dn2, и он должен решить.

+0

Я хочу попробовать и разрешить мои сервисы (или узлы данных) по имени хоста, которые я установил в конфигурации, а не по их имени службы. Это возможно ? – sunny

+0

да имена контейнеров опечатки будут исправлять – sunny

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