1

我正在使用 Docker Compose 创建两个容器。一个运行一个为mydomain.com网站服务的 Nginx Web 服务器,第二个需要向第一个发送 HTTP 请求(使用mydomain.com域名)。

我不想每次运行 Nginx 容器时都检查它的 ip,然后docker run --add-host在第二个容器上使用它。我的目标是跑步docker-compose up,一切准备就绪。

我知道这是不可能的,但我正在寻找的是:

# docker-compose.yml
nginx_container:
    ...

second_container:
    extra_hosts:
         # This is invalid. extra_hosts only accepts ips.
        - "mydomain.com:nginx_container"
4

1 回答 1

1

您可以使用如下配置获得类似的结果:

version: "3"

services:    
  api:
    image: node:8.9.3
    container_name: foo_api
    domainname: api.foo.test
    command: 'npm run dev'
    links:
      - "mongo:mongo.foo.test"
      - "redis:redis.foo.test"
    volumes:
      - .:/app
      - /app/node_modules
    ports:
      - "${PORT}:3000"
      - "9229:9229"
    depends_on:
      - redis
      - mongo
    networks:
      - backend

  redis:
    image: redis:3
    container_name: foo_redis
    domainname: redis.foo.test
    ports:
      - "6379:6379"
    networks:
      - backend

  mongo:
    image: mongo:3.6.2
    container_name: foo_mongo
    domainname: mongo.foo.test
    ports:
      - "${MONGO_PORT}:27017"
    environment:
      - MONGO_PORT=${MONGO_PORT}
    networks:
      - backend

networks:
  backend:
    driver: bridge
于 2018-05-15T17:11:09.077 回答