生成docker-compose中的容器名称。我需要将此名称传递给另一个容器,以便它可以建立连接。
我的方案是,我想基于docker的容器创建一个容器并与主机通信,在兄弟容器中执行一些东西作为其中的第二个进程。
那么我怎样才能在另一个容器中拥有容器的名称?
答案 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