【问题标题】:Can't Connect to MongoDB on new Azure VM无法连接到新 Azure VM 上的 MongoDB
【发布时间】:2015-12-01 14:29:11
【问题描述】:

我在 Azure 门户中为 MongoDB 创建了一个新的“容器应用程序”。这使用了来自 Docker Hub 的官方 MongoDB 容器并创建了一个 Ubuntu 15.04 盒子。我以前从未使用过 Docker。

我能够通过 SSH 连接到虚拟机并连接到虚拟机上的 mongo。在 ssh 会话中,如果我输入:

码头工人ps

我得到以下输出:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES 
a9af4c2e2b95        mongo               "/entrypoint.sh mongo"   34 minutes ago      Up 24 minutes       0.0.0.0:27017->27017/tcp   compose_mongo_1

但是,当我尝试从本地机器连接到 Mongo 时,我收到一条连接错误消息,提示“在 5000 毫秒后连接失败,放弃。”

一开始我以为是端口没有打开,但是我去Azure门户中的“网络安全组”,允许端口27017端口入站TCP流量。

我仍然无法连接。如果有人可以帮助我,我将不胜感激。

谢谢!

【问题讨论】:

    标签: mongodb azure docker


    【解决方案1】:

    好的,有几件事要记住(我刚刚测试了这个端到端,所以我确信它有效)。

    1. 确保 UFW(Ubuntu Firewall 也称为 Uncomplicated Firewall)默认拒绝所有转发的流量,因此您需要将其设置为 ACCEPT

      sudo nano /etc/default/ufw

    替换

    DEFAULT_FORWARD_POLICY="DROP"
    

    DEFAULT_FORWARD_POLICY="ACCEPT"
    

    并重新加载 UFW

    sudo ufw reload
    
    1. 这就是我运行 docker Image 的方式

      docker run -p 27017:27017 imageid &

    2. 为端口 27017 添加端点 - 从您的 Azure 门户中为此 VM(您已经完成)

    就是这样,我想你现在应该准备好了......

    【讨论】:

    • 感谢您的回复。我的工作防火墙现在不允许我通过 SSH 连接到外部服务器,但是一旦我回到家,我会尝试编辑防火墙。无论它是否有效,我都会在今晚提供更新。感谢您的帮助!
    • 我编辑了 ufw 并运行了 sudo ufw reload。我收到以下消息:防火墙未启用(跳过重新加载)我尝试从我的计算机连接,但连接仍然失败。有什么想法吗?
    • 在第 2 步中,您说“docker run -p 27017:27017 &”您是否遗漏了什么?你还输入了什么来运行你的 docker 镜像?我是 docker 新手,所以感谢您对我的耐心。
    • 我写了 ImageID ,但在括号中,SOverflow 可能将其视为 HTML 内容并没有显示,谢谢,现在已修复...
    • 我是个白痴!我将网络安全组中的源端口设置为 27017。我将其更改为 *,一切都开始工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多