从另一个Docker容器内部在Docker容器中运行的访问服务

目前,我在需要连接到camunda的docker容器内运行一个node.js应用程序,该容器在另一个容器中运行。

我使用以下命令启动容器

docker run -d --restart=always --name camunda -p 8000:8080 camunda/camunda-bpm-platform:tomcat-7.4.0

docker run -d --name app -p 3000:3000 app

这两个应用程序现在都在运行,我可以通过在端口8000上导航到主机的IP来访问camunda,运行wget http://localhost:8000 -q

-O -还会返回camunda页面。使用docker exec -it app sh和键入我的应用程序容器时wget

http://localhost:8000 -q -O -,我无法访问camunda。相反,我得到以下错误:

 wget: can't connect to remote host (127.0.0.1): Connection refused

当我使用将我的应用程序容器链接到camunda容器--link camunda:camunda并输入wget http://camunda:8000

-q -O -我的应用程序容器时,出现以下错误:

wget: can't connect to remote host (172.17.0.4): Connection refused`

我已经看到了这个选项,所以我使用来启动我的应用程序容器--add-hostcamunda:my_hosts_ip并再次尝试wget,结果是:

 wget: can't connect to remote host (149.210.227.191): Operation timed out

wget http://149.210.227.191:5001 -q -O -但是,在主机上运行时,我会立即得到正确的响应。

理想情况下,我只想启动我的应用程序容器,而无需以任何方式提供外部IP,让应用程序容器仅通过本地主机或将camunda容器链接到我的应用程序容器来使用camunda服务。实现这一目标的最简单方法是什么?

回答:

以下是原始答案。请注意,链接已被弃用,建议的替代方法是网络。对此问题的答案进行了解释:docker-

compose:网络与链接之间的区别

-将--link camunda:camunda选项用于您的应用容器。然后,您可以通过访问camunda http://camunda:8080/...。链接选项/etc/hosts使用camunda容器的IP地址将一个条目添加到app容器的文件中。这也意味着,如果重新启动camunda容器,则必须重新启动应用程序容器。

以上是 从另一个Docker容器内部在Docker容器中运行的访问服务 的全部内容, 来源链接: utcz.com/qa/434789.html

回到顶部