macos - 如何在Mac上使用Docker进行调试

标签 macos docker

我在Maac的docker容器中运行了kafka。这是我的开始方式

#Start Zookeeper 
docker run -d -p 2181:2181 --net myNet --name myZookeeper myRegistry/kafka:0.10.1.0 zookeeper-server-start

#Start Kafka 
export KAFKA_ADVERTISE_HOSTNAME="my.ip.add"

docker run -d --net br-advisor-nw  --name whi-kafka -p 9092:9092 --link myZookeeper:myZookeeper myRegistry/kafka:0.10.1.0 kafka-server-start --override zookeeper.connect=${KAFKA_ADVERTISE_HOSTNAME}:2181  --override broker.id=0 --override advertised.host.name=${KAFKA_ADVERTISE_HOSTNAME} --override group.max.session.timeout.ms=3600000 --override auto.create.topics.enable=false --override replica.fetch.max.bytes=10485760 --override message.max.bytes=10485760 --override port=9092 --override  listeners=PLAINTEXT://:9092

我可以看到容器在Docker中运行,并且可以将ssh放入容器中。

现在,我正在尝试从主机连接到容器
kafka-topics.sh --list --zookeeper my.ip.add:2181

但这无法连接。我也尝试过
kafka-topics.sh --list --zookeeper 0.0.0.0:2181

kafka-topics.sh --list --zookeeper 127.0.0.0:2181

kafka-topics.sh --list --zookeeper localhost:2181

但他们都失败了。我也试图从中获取容器的IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myZookeeper


ip.of.container


kafka-topics.sh --list --zookeeper ip.of.container:2181

也失败了。

我有什么方法可以连接到在docker容器中运行的kafka / zookeeper?

另外,尽管我使用的是-p标志,但似乎两个端口都没有暴露。这是为什么?

最佳答案

看来您在Mac上使用docker-toolbox / docker-machine运行docker。这将在幕后创建一个Linux VM,但不具有隐藏该VM的xhyve版本的某些功能。您会看到它在virutalbox中运行,并且会在用于连接到容器的IP地址中看到它。

您应该能够运行:

kafka-topics.sh --list --zookeeper 192.168.99.100:2181

要将来查找您的IP,可以使用docker-machine ip。如果您的Mac安装足够新,则您可能需要升级到使用xhyve的较新版本。

关于macos - 如何在Mac上使用Docker进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437452/

相关文章:

c++ - 体系结构 x86_64 : "_alloca" 的 undefined symbol

macos - htop中C进程状态是什么意思?

Docker 守护进程 Windows 7 : concurrent downloads

docker - docker build 上的 yarn 警告

linux - 将终端中的字体样式更改为指定的 .ttf 文件

java - 在使用 Java 6 的 Mac 上运行 JavaFX 2?

mysql - 通过 WLAN 同步 MAMP 数据库

docker - docker BRIDGE 和 HOST 驱动程序之间的区别?

docker - 在守护进程模式下运行 docker 与 systemctl start docker 有什么区别?

docker - 容器之间的链接在我的 Rancher 1.6.21 堆栈中不起作用