Я настраиваю 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.
похоже проблема с портом 27017 - вы убедились, что он не используется?
@PriidikVaikla Нет, та же ошибка
@Efrat Удалены порты: - 27017:27017, но все еще возникает ошибка





Если вы не хотите подключаться к своему экземпляру 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: ошибка ввода/вывода
@KishoreSahasranaman Это все еще прогресс. Вы уверены, что на 8080 уже ничего не работает? Может быть, другой контейнер (попробуйте docker ps и проверьте порты) или другое приложение на хосте?
похоже на занятые порты. запустите sudo fuser -n tcp -k 8080 несколько раз, пока не получите результат. затем перезапустите docker-compose up
@Efrat Он на Windows (это видно из поста)
@Mihai Да, в 8080 ничего не размещено. Даже проверил с помощью 'netstat -a -b'
@KishoreSahasranaman Можете ли вы просто изменить 8080 на 80080? Есть некоторые вещи, которые меня озадачивают: выглядит как занятый порт, вы работаете в Windows, а команда mkdir выглядит как Linux. Изменение хост-порта поможет понять, связана ли проблема с портом или с платформой.
@Mihai Я пробовал с 60080, так как 80080 находится вне диапазона портов. Но все равно получаю ту же ошибку
@KishoreSahasranaman Тогда действительно проблема с платформой. Не могли бы вы проверить этот пост и посмотреть, относится ли он к вашей ситуации: github.com/docker/for-win/issues/204#issuecomment-303461340
Это случилось со мной, в 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
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, редактировать добавьте дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.
Выдает ли это какую-либо другую ошибку, когда вы удаляете
external: trueиз томов?