如何连接本地机器和 Docker 容器?

Posted

技术标签:

【中文标题】如何连接本地机器和 Docker 容器?【英文标题】:How to connect local machine with Docker Container? 【发布时间】:2017-08-25 02:11:27 【问题描述】:

我正在尝试在本地计算机 (Windows 10) 上使用 kafka 作为生产者,并在 docker 容器 (ubuntu) 上使用 spark 流作为消费者。我的示例在容器中协同工作,但我需要在本地计算机上创建流。

我在主机(本地计算机)的 2181 端口和 9092 的 kafka 服务器上运行 zookeeper。

我在 9092 启动了一个代理来创建流(本地计算机)

producer = KafkaProducer(bootstrap_servers='localhost:9092') while True: message='Hola' producer.send(1,'test', message) time.sleep(1)

在容器的另一端,我正在监听端口 2181 以接收流。

ssc = StreamingContext(sc, 5)

kvs = KafkaUtils.createStream(ssc, "127.0.0.1:2181", "spark-streaming-consumer", 'test': 1)

问题是我不知道如何链接两者(Windows Kafka 和 Ubuntu)

我希望你能帮助我。 谢谢。

【问题讨论】:

见:***.com/questions/17770902/… 这个问题缺少很多信息。您能否发布有关如何启动容器以及需要“放置 ip kafka 参数”的相关命令?什么是主机操作系统?你在使用 Docker 机器吗? 【参考方案1】:

在启动 docker 容器时,将端口 8080 暴露到 8080 和 7077 到 7077 ,这可以通过在 docker run 命令中提供 -p 8080:8080 -p 7070:7070 来完成。

然后在 kafka 中你可以使用 localhost 或 127.0.0.1 进行配置

【讨论】:

它没有用。我在问题中添加了更多信息。

以上是关于如何连接本地机器和 Docker 容器?的主要内容,如果未能解决你的问题,请参考以下文章

修改Docker本地镜像与容器的存储位置的方法

搭建本地 Registry - 每天5分钟玩转 Docker 容器技术(20)

本地yum源构建以及Docker离线安装

如何将两个 docker 容器与 nomad 连接

Pycharm 使用 Docker Container Python 作为远程解释器

AWS ECS Docker 容器 Boto3 IAM 权限