我在我的码头:php-5.6-apache - Apache 和 phpzrrrzzt/docker-unoconv-webservice - 从 Libre Office 文档创建 pdf 的网络服务两个容器都使用网络 my-network从 shell 创建 pfs 可以正常工作:curl --form file=@/var/xxx/documents/output-odt/test.odt http://localhost:3000/unoconv/pdf > /var/xxx/documents/output-odt/test.pdf但是当从我的 php-5.6-apache 容器中调用它时,无法正确识别 localhost。当我使用已检查容器的 IP 地址(例如http://172.18.0.4:3000 )时,它适用于 php 。但这不是一个好的解决方案,因为服务器重新启动时 IP 地址会发生变化。问题:如何在 Docker 中调用 Web 服务?应该使用什么来代替 localhost?或者如何指定容器的 url?或者我该如何处理我的网络?谢谢
2 回答
温温酱
TA贡献1752条经验 获得超4个赞
现在我知道问题出在哪里了:D
此命令仅在从其他容器调用时才有效。就我而言,来自 php.ini。它不适用于 OS shell,这就是我感到困惑的原因:
curl --form 文件=@/var/xxx/documents/output-odt/test.odt http://unoconv:3000/unoconv/pdf > /var/xxx/documents/output-odt/test.pdf
此命令仅在从 OS shell 调用时有效: curl --form file=@/var/xxx/documents/output-odt/test.odt http://localhost:3000/unoconv/pdf > /var/xxx/documents/输出-odt/test.pdf
万千封印
TA贡献1891条经验 获得超3个赞
如何在 Docker 中调用 Web 服务?
通过将容器端口发布到使用该端口的机器上。
通常这是用 完成的docker run -p
,但我不确定你的设置
应该使用什么来代替 localhost?
0.0.0.0(和 localhost 一样,但是包括你机器上的所有接口)
或者我该如何处理我的网络?
您可以尝试让您的容器访问主机网络:https ://docs.docker.com/network/network-tutorial-host/
- 2 回答
- 0 关注
- 259 浏览
添加回答
举报
0/150
提交
取消