У меня есть сервис Docker Swarm, который использует mongodb, mongo-express и пользовательский образ узла.Я создал простой файл yaml для Docker, чтобы запустить их все вместе.
version: '3.1'
services:
mongo:
image: mongo:4.0.6-xenial
environment:
MONGO_INITDB_ROOT_USERNAME:
MONGO_INITDB_ROOT_PASSWORD:
mongo-express:
image: mongo-express
environment:
MONGO_INITDB_ROOT_USERNAME:
MONGO_INITDB_ROOT_PASSWORD:
ports:
- "8081:8081"
backend:
image: backend
ports:
- "2222:2222"
Теперь я знаю, что Docker Swarm автоматически создает сеть оверлеев по умолчанию среди всех узлов.Мой докер проверяет сеть отображает все контейнеры в сети.Я вижу, что сервер подключен с использованием localhost: 2222 и mongo-express с использованием localhost: 8081.
Моя проблема в том, что сервер не подключается, и при этом он даже не видит базу данных mongo.Я попытался ssh-ing в контейнер mongo-express, успешно отправил ping на localhost: 27017, затем успешно отправил pinging localhost: 2222.
Однако попытка ping / curl mongo-express или mongodb из внутреннего контейнера ничего не дает,его как порты даже не видны.(localhost: 2222 работает, но localhost: 8081 или localhost: 27017 нет).
РЕДАКТИРОВАТЬ: я снова ssh'd в бэкэнд-контейнер после копирования IP-адрес Монго из Docker Inspect Network, а затем смоглисвернуться успешно 10.0.5.8:27017.Почему это не на локальном хосте?