我有两个docker容器,我想使它们彼此可见。
1个容器:收集器(它在网站上收集pagaviews并发送到kafka clucster)
2个容器:kafka群集
我写了docker-compose文件:
version: "2"
services:
kafka-cluster:
image: landoop/fast-data-dev:cp3.3.0
environment:
ADV_HOST: 127.0.0.1 # Change to 192.168.99.100 if using Docker Toolbox
RUNTESTS: 0 # Disable Running tests so the cluster starts faster
ports:
- 2181:2181 # Zookeeper
- 3030:3030 # Landoop UI
- 8081-8083:8081-8083 # REST Proxy, Schema Registry, Kafka Connect ports
- 9581-9585:9581-9585 # JMX Ports
- 9092:9092
csapi:
build:
context: .
dockerfile: Dockerfile
links:
- kafka-cluster
docker-compose up命令给了我错误:创建clickstream-collector_kafka-cluster_1 ...错误
错误:对于clickstream-collector_kafka-cluster_1无法启动服务kafka-cluster:驱动程序无法在端点clickstre上编程外部连接
答案 0 :(得分:0)
不推荐使用链接。请参考Docker网络文档
您只需使用kafka-cluster:9092
,因为使用Compose时所有容器都已经通过名称相互了解
关于您的错误,它似乎与Kafka没有任何关系,但是我建议您为Zookeeper和Kafka使用单独的容器,并使用较新版本的Kafka,以便您可以从增强的功能和修复中受益< / p>
您绝对应该在广告127.0.0.1,尽管如果您研究设置一点点(广告的监听器不推荐使用广告的主机名属性),则