Подключиться к базе данных в док-контейнере с локального ПК

У меня есть приложение MeteorJs, которое я развернул в Digital Ocean с помощью MeteorUp. Как я могу подключиться к базе данных MongoDB с помощью клиента MongoDB с моего локального компьютера с Windows? Я пытался использовать MyDigitalOceanIP: 27017, но получаю сообщение об ошибке «Ошибка подключения».

Ошибка:

Connection failed.
SERVER [MyDigitalOceanIP:27017] (Type: UNKNOWN) CONNECTING
Details:
Timed out after 5000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=MyDigitalOceanIP:27017, type=UNKNOWN, state=CONNECTING}]

докер-контейнер ls

CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS              PORTS                        NAMES
91502fe2c115        mup-todousingreactandmeteorjs:latest   "/bin/sh -c 'bash $M…"   12 minutes ago      Up 12 minutes       0.0.0.0:80->80/tcp           ToDoUsingReactAndMeteorJs
2d4be51b46a2        mongo:3.4.1                            "/entrypoint.sh mong…"   21 minutes ago      Up 21 minutes       127.0.0.1:27017->27017/tcp   mongodb

Обновление: 02 сентября 2019 г. Теперь я получаю сообщение об ошибке Exhausted available authentication methods.

SSH Tunnel error: authentication failed: Exhausted available authentication methods    
Stacktrace:
|_/ SSH Tunnel error: authentication failed: Exhausted available authentication methods
|____/ SSH Tunnel error: Exhausted available authentication methods

Вот что я пробовал.

a. Copied public key from my local machine to ~/.ssh/authorized_keys folder in my Digital Ocean VM.
b. updated PasswordAuthentication, ChallengeResponseAuthentication, PubkeyAuthentication to yes in /etc/ssh/sshd_config.
c. In my local PC, created a standard connection with 
c.1. server localhost and port 27017, 
c.2. Authentication Mode None
c.3. Use SSL protocol to connect as unchecked. 
c.4. Use SSH tunnel to connect with ssh address as my public IP, port 22, SSH user name as the root user name. I tried with both ssh auth mode as private key(in OpenSSH format) and password. 

person Ajit Goel    schedule 01.09.2019    source источник


Ответы (1)


Есть несколько возможностей:

  1. Порт 27017 недоступен публично (см. правила брандмауэра для открытия портов)
  2. У машины нет общедоступного IP-адреса

Проверьте правила своего брандмауэра и убедитесь, что вы подключаетесь к общедоступному IP-адресу (а не к внутреннему IP-адресу).

person Mikkel    schedule 01.09.2019
comment
Спасибо @Миккель. Я решил настроить администратора, чтобы мне не приходилось открывать входные порты на моем дроплете. - person Ajit Goel; 03.09.2019