将docker容器生成的名称传递给docker-compose中的另一个容器

时间:2016-02-20 05:13:15

标签: docker docker-compose

生成docker-compose中的容器名称。我需要将此名称传递给另一个容器,以便它可以建立连接。

我的方案是,我想基于docker的容器创建一个容器并与主机通信,在兄弟容器中执行一些东西作为其中的第二个进程。

那么我怎样才能在另一个容器中拥有容器的名称?

3 个答案:

答案 0 :(得分:1)

使用docker-compose 1.6.1并在network-scoped alias中添加docker-compose issue 2829可以很容易。

--alias
  

选项可用于通过连接到的网络中的其他名称来解析容器。

这意味着您的第一个容器可以假设存在容器'x',只要稍后另一个容器以网络范围的别名'x'开头。

答案 1 :(得分:1)

无法传递容器名称。您最好的选择是使用COMPOSE_PROJECT_NAME设置项目名称,并将其传递到environment: - COMPOSE_PROJECT_NAME=的容器中。

然后,您可以使用<project name>_<service name>_1预测容器名称。

另一种选择是从docker-compose events拖尾事件流。这应该提供您需要的所有信息。

答案 2 :(得分:-1)

您需要链接它们。至少从你的解释来看你需要什么。

以下示例。

rabbitmq:
  container_name: rabbitmq
  image: million12/rabbitmq:latest
  restart: always
  ports:
    - "5672:5672"
    - "15672:15672"
  environment:
    - RABBITMQ_PASS=my_pass

haproxy:
  container_name: haproxy
  image: million12/haproxy
  restart: always
  command: -n 1
  ports:
    - "80:80"
  links:
    - rabbitmq:rabbitmq.server
  volumes:
    - /etc/haproxy:/etc/haproxy

现在这两个容器已链接,可以相互连接。

你可以从haproxy ping

ping rabbitmq.server