docker compose network_mode:“主机”不起作用

时间:2019-04-25 14:24:37

标签: docker docker-compose

我的dockerized应用需要访问localhost网络上的某些内容,而如果没有network_mode: "host"

version: '3.4'
services:
  app:
    network_mode: "host"
    image: node:latest
    volumes:
      - .:/usr/app
      - node_modules:/usr/app/node_modules
    working_dir: /usr/app
    ports:
      - 3000:3000

volumes: 
  node_modules:

如果我注释掉network_mode: "host",则我的应用程序可以在http://localhost:3000上完美运行。如果我重新添加它,它仍然可以运行,但是无法在http://localhost:3000上访问。

编辑:我刚刚在Ubuntu上测试了一个hello world,它可以工作,但是在mac上却不能,mac似乎不能与network_mode: "host"一起工作

1 个答案:

答案 0 :(得分:0)

是的,在撰写本文时, mac 肯定存在问题,问题是 mac 中的docker使用了一个Linux虚拟机来存放容器,因此当您使用network_mode: "host"时,它将仅对VM的网络有效,而对您的mac无效:(更多信息here

或者,不要使用network_mode: "host",而是将其保留在网桥(默认)中,然后将服务配置为不使用 localhost:xxxx ,而是使用 host。 docker.internal:xxxx