Docker:从容器访问主机上的服务

Docker:从容器访问主机上的服务,docker,networking,docker-compose,containers,devops,Docker,Networking,Docker Compose,Containers,Devops,我需要使用docker compose安装文件从docker容器访问主机上运行的服务 另外,在这一点上,我不知道我是否能够更改容器中应用程序使用的主机名,以便服务必须在“localhost”主机上可用 我知道如何使用docker-run:docker-run--net=“host”…-它完全按照我的需要工作:例如,我可以wgethttp://localhost从容器中,我将收到主机web服务器提供的文件 我不知道的是如何在docker compose.yml 我试过这个 version: '3'

我需要使用docker compose安装文件从docker容器访问主机上运行的服务

另外,在这一点上,我不知道我是否能够更改容器中应用程序使用的主机名,以便服务必须在“localhost”主机上可用

我知道如何使用
docker-run
docker-run--net=“host”…
-它完全按照我的需要工作:例如,我可以
wgethttp://localhost
从容器中,我将收到主机web服务器提供的文件

我不知道的是如何在
docker compose.yml

我试过这个

version: '3'

services:

  nginx:
    container_name: cont
    image: ubuntu
    command: sleep 10000000
    networks:
      - host

networks:
  host:
但无法重现相同的功能。 我该怎么做? 谢谢

根据文档,您应该使用
网络模式:“主机”
语句

最后的
docker compose.yaml
是:

version: '3'
services:
  nginx:
    container_name: cont
    image: ubuntu
    command: sleep 10000000
    network_mode: "host"

非常感谢。这是正确的答案。即使我不能使用它,因为它不能像我在mac上期望的那样工作:对于mac,“主机”是用来运行docker的VM,而不是mac本身,这就是我需要访问的应用程序正在运行的地方。如果您知道如何访问主机Mac,请告诉我。谢谢使用
host.docker.internal
。这应该完全满足您在Mac上的需求。