Я пробовал последние RC для докеров и составлял в течение нескольких дней, и, наконец, сегодня новые стабильные версии (1.10 и 1.6 соответственно).Не удается добраться до контейнеров с новыми 1.10 DNS SD
Новый сетевой материал, добавленный в версии 1.9, пока замечателен. Но так как я обновил до 1.10rc1 (и до сих пор для каждого RC и стабильного), контейнеры в той же сети, определенной пользователем, больше не могут найти друг друга. Фактически, они не могут даже достичь внешнего мира прямо сейчас.
Быстрый пример, файл test_docker/докер-compose.yml:
version: '2'
services:
db1:
image: mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
db2:
image: mysql
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
Это создает два контейнера MySQL с официальным изображением. Согласно сочинить документы, новый testdocker_default должен быть создан, причем оба контейнер автоматически соединяется, что имеет место:
docker network inspect testdocker_default
[
{
"Name": "testdocker_default",
"Id": "820f702e8e685567e4f1a8638cd9be305e96e37fcd741306eed6c1cf0d54ba02",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1/16"
}
]
},
"Containers": {
"16d5594bdfd11f55d33a207612b8447f6b50ff4be8b42d2313707b06ca618556": {
"Name": "testdocker_db2_1",
"EndpointID": "b6d5ff10fba860c01ac7a6508e56c5e116296cd06ea2158c695897e18fcd50ce",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
},
"9b8b885dab3b5012c9663cb97a07af66fbe385f92c69a614a4d56bf85305ec3a": {
"Name": "testdocker_db1_1",
"EndpointID": "09e43aef8e14b0e876d47fabe67a3827dc4cea5d44b199113d9ab2678d8ce22a",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {}
}
]
Теперь документация также говорит о том, что контейнеры должны быть в состоянии достигнуть друг с другом через DB1 и db2, но это не так:
[email protected]:/# mysql -h db2 -u root
ERROR 2005 (HY000): Unknown MySQL server host 'db2' (111)
[email protected]:/# mysql -h testdocker_db2_1 -u root
ERROR 2005 (HY000): Unknown MySQL server host 'testdocker_db2_1' (111)
Кроме того, ни один контейнер способен достичь интернет, если я явно не добавить DNS Google для /etc/resolv.conf.
Я уверен, что я делаю что-то неправильно здесь, потому что я не могу найти проблемы, поднятые другими людьми, но я не могу понять, что это такое.
Спасибо, ребята!
Edit:
Чтобы уточнить, контейнеры могут пинговать друг с другом через IP-адрес, но имена хостов не будут решены.
Я точно воссоздал вашу настройку - просто скопировал и вставил ваш yml, даже использовал один и тот же каталог - и смог выполнить пинг других контейнеров, а также Интернет. Поиск DNS работает ...и я смог выполнить ping 'db2' из' db1'. – deitch
Я работаю с окончательным выпуском, хотя, возможно, ваш RC плохой? Лично я должен признать, что я не совсем уверен, как эта новая структура DNS работает. Я читал «Проблемы и PR» и все еще смущен. – deitch
Чтобы добавить: '$ docker exec -it testdocker_db1_1 bash root @ 4fcd80c16e5d:/# mysql -h db2 -u root Добро пожаловать на монитор MySQL. Команды заканчиваются; или \ g. Ваш идентификатор соединения с MySQL равен 2 Версия сервера: 5.7.10 Сервер сообщества MySQL (GPL) Copyright (c) 2000, 2015, Oracle и/или его филиалы. Все права защищены. Oracle является зарегистрированной торговой маркой корпорации Oracle и/или ее дочерних компаний . Другие названия могут быть товарными знаками соответствующих владельцев . Тип 'help;' или '\ h' для получения справки. Введите '\ c', чтобы очистить текущую инструкцию ввода. mysql> ' – deitch