Docker组成网络,从容器访问主机端口

时间:2017-03-08 20:38:31

标签: node.js docker docker-compose dockerfile

这是我的撰写文件:

version: '3'
services:
  web:
    container_name: dash
    build: 
      context: .
      dockerfile: Dockerfile
      args:
        webpackVersion: 2.2.1
        nodeVersion: "6.x"
    ports:
      - "3036:3036"
    links:
      - mongodb:dbhost
    depends_on:
      - mongodb
  mongodb:
    container_name: mongodb
    build:
      context: .
      dockerfile: Dockerfile-mongodb

现在web可以访问mongodb容器,我可以在其中保存app配置。但我还需要能够从我web的本地机器上访问端口3306,我正在运行docker-compose。

我尝试按照文档进行操作,但我是docker中的新手,所以对我来说看起来很复杂,如何在docker-compose中使用网络。

如果有人能帮助我理解这一点,我将非常感激!

1 个答案:

答案 0 :(得分:1)

我发现只有一种方法可以打开所有主机端口,就是使用network_mode: host 应该也可以使用network但在我的情况下,第一个解决方案就足够了。

version: '3'
services:
  web:
    container_name: dash
    network_mode: host
    build: 
      context: .
      dockerfile: Dockerfile
      args:
        webpackVersion: 2.2.1
        nodeVersion: "6.x"
    ports:
      - "3036:3036"
    links:
      - mongodb:dbhost
    depends_on:
      - mongodb
  mongodb:
    container_name: mongodb
    network_mode: host
    build:
      context: .
      dockerfile: Dockerfile-mongodb

network_mode: host无法在mac上运行,你应该在VB中运行docker