Ошибка docker-compose Не удается запустить службу монго: драйверу не удалось запрограммировать внешнее подключение к конечной точке

Я настраиваю grandnode с помощью mondodb в докере, используя docker compose.

докер-compose.yml

    version: "3.6"

    services:
      mongo:
        image: mongo:3.6
        volumes:
          - mongo_data_db:/data/db
          - mongo_data_configdb:/data/configdb
        ports:
          - 27017:27017
      grandnode:
        image: grandnode/grandnode:4.10
        ports:
          - 8080:8080
        depends_on:
          - mongo

    volumes:
      mongo_data_db:
        external: true
      mongo_data_configdb:
        external: true

Получение ошибки ниже при использовании файла docker-compose.

E:\docker\grandnode>docker-compose up
Creating network "grandnode_default" with the default driver
Creating grandnode_mongo_1 ... error

ERROR: for grandnode_mongo_1 Cannot start service mongo: driver failed programming external connectivity on endpoint grandnode_mongo_1 (1e54342c07b093e32189aad487927f226b3ed0d1b6bdf7413588377b0e99bc2c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.20.0.2:27017: input/output error

ERROR: for mongo Cannot start service mongo: driver failed programming external connectivity on endpoint grandnode_mongo_1 (1e54342c07b093e32189aad487927f226b3ed0d1b6bdf7413588377b0e99bc2c): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:27017:tcp:172.20.0.2:27017: input/output error
ERROR: Encountered errors while bringing up the project.

Выдает ли это какую-либо другую ошибку, когда вы удаляете external: true из томов?

Priidik Vaikla 28.04.2019 12:56

похоже проблема с портом 27017 - вы убедились, что он не используется?

Efrat Levitan 28.04.2019 19:15

@PriidikVaikla Нет, та же ошибка

Kishore Sahasranaman 30.04.2019 08:51

@Efrat Удалены порты: - 27017:27017, но все еще возникает ошибка

Kishore Sahasranaman 30.04.2019 08:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
4
8 480
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Если вы не хотите подключаться к своему экземпляру MongoDB с локального хоста, вам не нужно это сопоставление портов «27017:27017». Оба сервиса находятся в одной сети и все равно будут видеть друг друга. Grandnode может подключиться к MongoDB по адресу mongo:27017.

Удалено, но все еще получает ошибку, ошибку: для 10d29f3ab611_grandnode_grandnode_1 Не удается запустить службу grandnode: драйвер не программирование внешнего подключения на конечной grandnode_grandnode_1 (53feafa5d849557f2f84ef95627e9a6f4fd3756bc45f27b5e7db5e48b5a 65d5d): Ошибка при запуске программы пользователей прокси: MkDir /port/tcp:0.0.0.0:8080:tcp: 172.20.0.3:8080: ошибка ввода/вывода

Kishore Sahasranaman 30.04.2019 08:50

@KishoreSahasranaman Это все еще прогресс. Вы уверены, что на 8080 уже ничего не работает? Может быть, другой контейнер (попробуйте docker ps и проверьте порты) или другое приложение на хосте?

Mihai 30.04.2019 08:53

похоже на занятые порты. запустите sudo fuser -n tcp -k 8080 несколько раз, пока не получите результат. затем перезапустите docker-compose up

Efrat Levitan 30.04.2019 08:59

@Efrat Он на Windows (это видно из поста)

Mihai 30.04.2019 09:11

@Mihai Да, в 8080 ничего не размещено. Даже проверил с помощью 'netstat -a -b'

Kishore Sahasranaman 30.04.2019 11:49

@KishoreSahasranaman Можете ли вы просто изменить 8080 на 80080? Есть некоторые вещи, которые меня озадачивают: выглядит как занятый порт, вы работаете в Windows, а команда mkdir выглядит как Linux. Изменение хост-порта поможет понять, связана ли проблема с портом или с платформой.

Mihai 30.04.2019 11:59

@Mihai Я пробовал с 60080, так как 80080 находится вне диапазона портов. Но все равно получаю ту же ошибку

Kishore Sahasranaman 01.05.2019 10:11

@KishoreSahasranaman Тогда действительно проблема с платформой. Не могли бы вы проверить этот пост и посмотреть, относится ли он к вашей ситуации: github.com/docker/for-win/issues/204#issuecomment-303461340

Mihai 01.05.2019 10:24
Ответ принят как подходящий

Проблема заключалась в том, что общие диски не были проверены.

  • Проверьте необходимые диски
  • Нажмите Применить
  • Перезапустите Докер

Это решит проблему.

Это случилось со мной, в Xubuntu 20.04. Проблема заключалась в том, что на моем компьютере был запущен mongod. Остановить mongod, было решением для меня.

Я сделал это:

sudo systemctl stop mongod

Убедитесь, что mongod был остановлен с помощью:

systemctl status mongod | grep Active

Вывод этой команды должен быть:

Active: inactive (dead)

Затем снова выполните это:

docker-compose up -d

Все сработало, как и ожидалось.

остановите свой сервер MongoDB из вашей ОС.

для линукса

sudo systemctl stop mongod

если это все еще не работает, удалите MongoDB с локального компьютера и снова запустите docker compose.

для пользователя Linux

sudo systemctl остановить MongoDB

sudo docker-compose up -d

Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, редактировать добавьте дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 14.02.2022 09:45

Другие вопросы по теме