mon go docker (созданный с помощью Dockerfile) не подключается к Compass / внешнему хосту - PullRequest
0 голосов
/ 24 февраля 2020

Я создал один Dockerfile из mongodb, приведенный ниже.

FROM mongo

COPY ./start.sh .

RUN chmod +x ./start.sh

EXPOSE 27017-27019

CMD ["./start.sh"]

start. sh содержит следующее содержимое

mongod

Команда, которую я использую для запуска docker

sudo docker run -p 27017:27017 custom_mongo

enter image description here Я могу подключить этот docker изнутри контейнера (т.е. с помощью команды exe c -it, а затем с помощью команды пн go клиент) но при попытке подключения с пн go компас время его ожидания означает, что порт не переадресован / выставлен.

Эквивалент docker, когда работает напрямую без Dockerfile, успешно подключается к Compass. Ниже приведена команда, которую я использовал.

docker run -d -p 27017-27019:27017-27019 --name mongodb mongo

1 Ответ

0 голосов
/ 25 февраля 2020

Итак, проблема была в том, что команда mongod в начале. sh прослушивала 127.0.0.1, то есть localhost, который доступен только внутри контейнера, а не снаружи.

Чтобы контейнер мог прослушивать внешние хосты, он должен быть подключен к 0.0.0.0 , что означает любой IP. Таким образом, чтобы включить это, измените команду запуска на mongod --bind_ip_all .

Ссылка: https://forums.docker.com/t/docker-running-host-but-not-accessible/44082/48

...