У меня есть контейнер Docker с mongodb.
someId mongo:3.6 "docker-entrypoint.s…" 11 days ago Up 11 days 0.0.0.0:27017->27017/tcp myMongo
Когда я пытаюсь подключиться к этому монго с локальной машины через mongo localhost:27017, я получаю сообщение об ошибке
error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:328:13
Что я делаю неправильно?
Обновлять
Вот вывод docker-compose ps
myMongo docker-entrypoint.sh --wir ... Up 0.0.0.0:27017->27017/tcp
Docker-compose файл
version: '2'
services:
mongo:
image: "mongo:3.6"
container_name: myMongo
ports:
- "27017:27017"
mem_limit: 2G
Окончательное обновление
Перезагрузил мою Ubuntu, снова запустил docker-compose, и все заработало, как и ожидалось: mongo localhost теперь работает. Подозреваю, что есть проблема в процессе выхода из Ubuntu 18.04, потому что до этого (и до перезагрузки системы) я несколько раз выполнял вход/выход из системы.
он не будет подключаться, поскольку сети контейнеров докеров отделены от вашей локальной системной сети. Поэтому вам нужно запустить докер с разоблачением порта в вашей локальной системе с помощью следующей команды: docker run -d -e ROOT_URL=http://localhost -e MONGO_URL=mongodb://localhost:27017 --network = "host"
на самом деле я запускаю этот процесс докера с помощью команды docker-compose. Обновил вопрос
Затем вам также необходимо добавить сопоставление портов хоста и докера, например ports: - 10005:80.
Затем вам также необходимо добавить сопоставление портов хоста и докера, например ports: - 10005:80.
Добавлено сопоставление портов @krishnaPrasad. Что вы имеете в виду под отображением хоста?
Вы можете поделиться своим файлом компоновки докеров? у вас явно что-то не так с сопоставлением портов
@maks Я имею в виду, что сопоставление порта хоста и порта докера должно быть выполнено до проверки того, подключается ли он с хост-компьютера или нет.
поделиться содержимым файла docker composer
@krishnaPrasad обновил вопрос
@maks Я пробовал использовать Mac с предоставленным docker-compose.yml, и он работает нормально. Надеюсь, ваша проблема решена перезапуском.

Шаги для запуска контейнеров Docker Mongo и подключения из локальной системы:
Создайте файл докера docker-compose.yml как:
version: '2'
services:
mongo:
image: "mongo:3.6"
container_name: myMongo
ports:
- "27017:27017"
mem_limit: 2G
Прежде чем создавать docker composer, вы должны проверить, что порт 27017 уже занят какими-то другими процессами или нет, как:
netstat -an | grep 27017
или
lsof -i -P ;// look for the port 27017
Если номер порта 27017 уже занят, вам нужно изменить номер порта в докере с 27027 на любой другой.
запустите контейнер Docker с помощью команды ниже [вы должны находиться в том же каталоге, где находится файл docker-compose.yml]
docker-compose up
Теперь ваш докер-контейнер с mongo db 3.6 запущен и работает, откройте новый терминал и подключитесь к оболочке mongo как mongo, если порт по умолчанию 27017, иначе mongo --port <whateverport number in docker compose>
Надеюсь, это объяснение поможет вам, а также кому-то еще :)
спасибо, кажется, проблема связана с процессом выхода / входа в систему на моей Ubuntu 18.04, так как это происходит, когда я выхожу из системы, а затем вхожу в работающую ОС. В качестве альтернативы, если я перезагружаю свою ОС - все работает нормально