【问题标题】:How to get ip and port in one docker container form other one with environment variables?如何使用环境变量从另一个 docker 容器中获取一个 docker 容器中的 ip 和端口?
【发布时间】:2017-08-14 19:54:12
【问题描述】:

我使用 Docker-Compose。

前段时间我使用了这个代码。 Nginx 使用环境变量中的 ip 和端口,例如“API_PORT_5432_TCP_ADDR”“API_PORT_5432_TCP_PORT”。

现在我无法从一个容器连接到另一个容器。我在文档中找到了一些描述,“链接”应该做这样的工作,我的意思是它创建环境变量,然后我可以在其他容器中得到它。但我不知道,我做错了什么。有没有办法解决这个问题?如果你给我链接或一些代码行,我会很高兴。

谢谢。

version: '3.0'
    services:
      ubuntubase:
        build: ./ubuntu-base 
      backend:
          build: ./backend
          links:
              - postgresql:db
          expose:
              - "6060"
          depends_on:
              - ubuntubase
              - postgresql
      nginxreverseproxy:
          build: ./nginx-reverse-proxy
          expose:
              - "80"
              - "443"
          links:
              - backend:api
          ports:
              - "80:80"
          volumes:
              - ./logs/:/var/log/nginx/
          depends_on:
              - ubuntubase
              - backend


      postgresql:
        restart: always
        image: sameersbn/postgresql:9.6-2
        expose:
          - "5432"
        depends_on:
            - ubuntubase
        environment:
          - DEBUG=false
          - DB_USER=...
          - DB_PASS=...
          - DB_NAME=...  
        volumes:
          - /srv/docker/postgresql:/var/lib/postgresql

【问题讨论】:

    标签: nginx docker containers docker-compose docker-container


    【解决方案1】:

    links 不能通过环境变量工作。它通过公开服务的名称来工作,就好像它是 DNS 主机名一样。因此,在您的示例中,您的“nginxreverseproxy”服务可以使用主机名“api”连接到“后端”服务。

    默认情况下,这些链接使用服务的名称,即如果您指定了:

    links:
      - backend
    

    然后您将连接到“后端”。如果您提供另一个名称(就像您使用“api”所做的那样),那么该名称将作为别名公开。

    但是,这不会与端口通信。如果您想使用非默认端口,您可能必须自己设置一个环境变量,然后告诉您的服务使用它。

    例如,你的“后端”暴露了 6060 端口。如果你的“nginxreverseproxy”不知道,你可以通过环境变量告诉它。

    nginxreverseproxy:
      environment:
        - BACKEND_PORT=6060
    

    然后告诉 nginx 服务使用那个环境变量,加上主机名“api”,来连接。

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多