【发布时间】:2021-11-04 13:18:30
【问题描述】:
我尝试在主机网络上构建以下 docker-compose 文件。构建成功,但构建后我看不到任何结果。
version: "3.3"
services:
mycontainer_3000:
container_name: mycontainer_3000
build:
context: src/mycontainer_3000
dockerfile: ./../../Dockerfile.dev
args:
- T_ENV
image: myproject/mycontainer_3000:latest
restart: unless-stopped
network_mode: host
volumes:
- "./src/mycontainer_3000:/usr/src/app"
depends_on:
- mycontainer_3001
mycontainer_3001:
container_name: mycontainer_3001
build:
context: src/mycontainer_3001
dockerfile: ./../../Dockerfile.dev
args:
- T_ENV
image: myproject/mycontainer_3001:latest
volumes:
- "./src/mycontainer_3001:/usr/src/app"
depends_on:
- mongo
mycontainer_3003:
container_name: mycontainer_3003
build:
context: src/mycontainer_3003
dockerfile: ./../../Dockerfile.dev
args:
- T_ENV
image: myproject/mycontainer_3003:latest
network_mode: host
volumes:
- "./src/mycontainer_3003:/usr/src/app"
depends_on:
- mongo
mycontainer_3002:
container_name: mycontainer_3002
build:
context: src/mycontainer_3002
dockerfile: ./../../Dockerfile.dev
args:
- T_ENV
image: myproject/mycontainer_3002:latest
network_mode: host
volumes:
- "./src/mycontainer_3002:/usr/src/app"
mongo:
image: mongo
restart: always
network_mode: host
volumes:
- "./db/:/data/db"
mongo-express:
image: mongo-express
restart: always
network_mode: host
environment:
ME_CONFIG_MONGODB_URL: mongodb://mongo:27017/
当我使用 docker-compose up 编译时,所有容器都创建成功。
但是当我尝试使用 http://localhost:3000 或任何其他端口访问任何容器时,它显示该端口上没有运行任何内容!
【问题讨论】:
-
您几乎不需要主机网络,并且它不适用于非 Linux 主机或 Docker 以其他方式在 VM 中运行。你的主机系统是什么?如果您的服务正在侦听单个端口,您可以使用像
ports: ['3000:3000']这样的 Compose 设置吗? -
我正在使用 Docker for Desktop。错误是这样的:
ERROR: for mycontainer_3002 "host" network_mode is incompatible with port_bindings -
如果您使用的是 Docker Desktop,主机网络可能无法按您预期的方式工作。删除
network_mode: host选项。
标签: node.js mongodb docker docker-compose