从另一个Docker容器内部在Docker容器中运行的访问服务
目前,我在需要连接到camunda的docker容器内运行一个node.js应用程序,该容器在另一个容器中运行。
我使用以下命令启动容器
docker run -d --restart=always --name camunda -p 8000:8080 camunda/camunda-bpm-platform:tomcat-7.4.0docker 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