我需要使用 docker-compose 设置文件从 docker 容器访问在主机上运行的服务。
此外,此时我不知道是否能够更改容器中应用程序使用的主机名,因此服务必须在“localhost”主机上可用。
我知道如何使用 docker run
来做到这一点:docker run --net="host" ...
- 它完全按照我的需要工作:例如我可以 wget http://localhost
从容器中,我将收到由主机的 Web 服务器提供的文件。
我不知道如何在 docker-compose.yml
中配置相同的内容
我试过了
version: '3'
services:
nginx:
container_name: cont
image: ubuntu
command: sleep 10000000
networks:
- host
networks:
host:
但无法重现相同的功能。 我怎么做? 谢谢!
最佳答案
根据docker-compose在文档中,您应该使用 network_mode: "host"
语句。
最终的docker-compose.yaml
是:
version: '3'
services:
nginx:
container_name: cont
image: ubuntu
command: sleep 10000000
network_mode: "host"
关于Docker:从容器访问主机上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943509/