docker组成了nginx反向代理,没有将容器添加到docker0网桥

时间:2018-01-07 04:55:32

标签: docker nginx docker-compose reverse-proxy bridge

执行docker-compose up后,它启动容器。 当我docker ps时,我得到下面的内容,告诉我容器正在运行。但是当我docker network inspect bridge时,结果显示docker0桥没有容器部分。

当我执行docker run meanchat_myserver时,它实际上显示在docker0上,而且我还获得了服务器在port 3000上运行的数据。 我使用docker-compose无法获得。

我在这里做错了什么?

我正在阅读当我使用docker0时,我只能将IP连接到其他容器而不是名称。我是否可以假设ip没有对容器进行更改,并且在生产中部署应用程序时这没有问题?

  02cf08b1c3da        d57f06ba9c68        "npm start"              33 minutes ago      Up 33 minutes       4200/tcp             meanchat_client_1
  e257063c9e21        meanchat_myserver   "npm start"              33 minutes ago      Up 33 minutes       3000/tcp             meanchat_myserver_1
  02441c2e43f5        e114a298eabd        "npm start"              About an ago         Up 33 minutes       0.0.0.0:80->80/tcp   meanchat_nginx_1
  88d9841d2553        mongo               "docker-entrypoint..."   3 hours ago         Up 3 hours          27017/tcp            meanchat_mongo_1

组成

version: '3'

services:
# Build the container using the client Dockerfile
    client:
        build: ./
        # This line maps the contents of the client folder into the container.
        volumes:
            - ./:/usr/src/app

    myserver:
        build: ./express-server
        volumes:
            - ./:/usr/src/app
        depends_on:
            - mongo

    nginx:
        build: ./nginx
        # Map Nginx port 80 to the local machine's port 80
        ports:
            - "80:80"
        # Link the client container so that Nginx will have access to it

    mongo:
        environment:
            - AUTH=yes
            - MONGO_INITDB_ROOT_USERNAME=superAdmin
            - MONGO_INITDB_ROOT_PASSWORD=admin123
            - MONGO_INITDB_DATABASE=d0c4ae452a5c
        image: mongo
        volumes:
            - /var/mongodata/data:/data/db

1 个答案:

答案 0 :(得分:2)

  

默认情况下,Compose会为您的应用设置单个网络。

有关详细信息,请参阅此link

这意味着containers compose默认情况下不会位于默认bridge network

您可以使用该命令检查containerscompose使用的网络。

docker inspect $container_name -f "{{.NetworkSettings.Networks}}"

但是,如果您希望containers处于默认bridge network,则可以使用network_mode

services:
    service_name:
        # other options....
        network_mode: bridge