Моя цель состояла в том, что Дженкинс контейнер будет «разговаривать» с Ансибль контейнер для создания Дженкинс файл для Дженкинс трубопровод.
Я ожидал, что эти два контейнера «присоединятся» к мост network и получить 2 IP-адреса с одним и тем же идентификатором сети, но вместо этого были созданы две дополнительные сети, и каждый контейнер получил IP-адрес с другим идентификатором сети.
Также ожидается, что эти два контейнера будут иметь доступ к интернету.
Итак, в моей Windows 10 я использую Docker Desktop,
У меня есть 2 файла docker-compose.yml,
Один, для Дженкинс контейнер:
версия: '3.7'
Сервисы:
Дженкинс:
изображение: Дженкинс/Дженкинс:lts
привилегированный: правда
пользователь: корень
порты:
- 8080:8080
- 50000:50000
имя_контейнера: Дженкинс
Другой, для Ансибль контейнер:
версия: '2'
Сервисы:
доступный:
имя_контейнера: доступный
имя хоста: доступный
изображение: доступный
тома:
- ~/продукт/возможность:/возможность
рабочий_каталог: /возможный
строить:
контекст: .
докерфайл: Докерфайл
DNS:
- 200.20.200.20
Я выполнил следующую команду для каждого файла docker-compose.yml, поэтому у меня было две отдельные машины:
docker-compose up --build
Я проверил сетевые данные моего контейнера и обнаружил, что у каждого контейнера свой идентификатор сети, см. ниже:
PS> docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' доступный
172.18.0.2
PS> docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' jenkins
172.19.0.2
проверьте раздел моих сетей докеров, выяснилось, что были созданы еще 2 сети, кроме мост, хозяин и никто:
PS > сеть докеров ls
ИДЕНТИФИКАТОР СЕТИ НАЗВАНИЕ ДРАЙВЕР ОБЛАСТЬ ПРИМЕНЕНИЯ
8cefaed24885 локальный мост ansible_default
44bedcd1622d мост мост местный
61e1c7f7051e хост хост локальный
b5a7a7a424a4 jenkins_default локальный мост
4e5d6c77cb5a нет null локальный
Конечно, осмотр мост сеть показывает, что контейнер ключ пустой:
{
«Имя»: «мост»,
"Идентификатор": "44bedcd1622d820ce4e29a5cd545f244ba2d303102f1956fe76069a63e7c220e",
"Создано": "2021-08-25T13:13:57.6577149Z",
«Область действия»: «местный»,
«Водитель»: «мост»,
«Включить IPv6»: ложь,
"ИПАМ": {
"Драйвер": "по умолчанию",
«Опции»: ноль,
"Конфигурация": [
{
"Подсеть": "172.17.0.0/16",
«Шлюз»: «172.17.0.1»
}
]
},
"Внутренний": ложь,
"Присоединяемый": ложь,
"Вход": ложь,
«Конфигурация»: {
"Сеть": ""
},
"Только Конфигурация": ложь,
"Контейнеры": {},
"Параметры": {
"com.docker.network.bridge.default_bridge": "истина",
"com.docker.network.bridge.enable_icc": "истина",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
«Ярлыки»: {},
«Время создания»: 1629897237657
}
Мой вопрос:
а) Почему были созданы еще две сети докеров, когда я запускал docker-compose up --build
команда?
б) Как я могу заставить эти контейнеры работать с мост сети и получить IP-адреса одного и того же идентификатора сети (идентификатор сети моста 172.17.x.x) для того, чтобы они говорили друг с другом?