Docker compose docker compose上cloudant的URL

Docker compose docker compose上cloudant的URL,docker-compose,cloudant,Docker Compose,Cloudant,使用docker compose,我试图让我的应用程序调用具有以下值的cloudant URL,但始终拒绝连接: 但是如果我转到,我可以访问cloudant web控制台 这是我的撰写文件(引用中的示例) 以下是我如何让它工作的: 在docker compose文件中指定cloudant容器的主机名,如下所示: restart: always hostname: cloudant privileged: true 在容器之间通信时,使用容器中服务公开的端口,而不是映射中定义的端口。在

使用docker compose,我试图让我的
应用程序
调用具有以下值的cloudant URL,但始终拒绝连接:

但是如果我转到,我可以访问cloudant web控制台

这是我的撰写文件(引用中的示例)


以下是我如何让它工作的:

  • 在docker compose文件中指定cloudant容器的主机名,如下所示:

    restart: always
    hostname: cloudant
    privileged: true
    
  • 在容器之间通信时,使用容器中服务公开的端口,而不是映射中定义的端口。在本例中,您使用Cloudant公开的端口80。因此,您的URL应如下所示:

  • 在应用程序容器中将
    network\u mode
    值设置为
    bridge

  • 以下是一个工作示例:


    另外,请确保在Cloudant中接受许可证并初始化数据库。完成此操作后,您可能需要重新启动docker compose。

    以下是我如何实现此功能的:

  • 在docker compose文件中指定cloudant容器的主机名,如下所示:

    restart: always
    hostname: cloudant
    privileged: true
    
  • 在容器之间通信时,使用容器中服务公开的端口,而不是映射中定义的端口。在本例中,您使用Cloudant公开的端口80。因此,您的URL应如下所示:

  • 在应用程序容器中将
    network\u mode
    值设置为
    bridge

  • 以下是一个工作示例:


    另外,请确保在Cloudant中接受许可证并初始化数据库。完成此操作后,您可能需要重新启动docker compose。

    是否尝试连接到默认端口5984?刚刚尝试。不过运气不好。谢谢。您是否尝试连接到默认端口5984?刚刚尝试。不过运气不好。谢谢,谢谢。你说得对。我应该改用80端口。然而,它仍然不起作用。当我尝试在我的应用程序容器中ping
    cloudant
    时,它显示未知主机。有什么想法吗?我更新了我的答案。我想你也需要在应用程序容器中将网络模式设置为桥接。它正在工作!非常感谢@markwatsonatx。我曾尝试在应用程序上使用
    网桥
    网络,但失败。关键(至少对我来说)是重新启动docker compose。谢谢。你说得对。我应该改用80端口。然而,它仍然不起作用。当我尝试在我的应用程序容器中ping
    cloudant
    时,它显示未知主机。有什么想法吗?我更新了我的答案。我想你也需要在应用程序容器中将网络模式设置为桥接。它正在工作!非常感谢@markwatsonatx。我曾尝试在应用程序上使用
    网桥
    网络,但失败。关键(至少对我来说)是重新启动docker compose。