如何在Mac上使用Docker进行debugging

我有卡夫卡在Maac的docker集装箱上运行。 这是我如何开始它

#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中运行的容器,并且我可以很好地调入容器。

现在,我正在尝试从主机连接到容器

 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。 这将在下面创build一个Linux VM,但是没有隐藏VM的xhyve版本的一些function。 你会看到它运行在virutalbox,你会看到它的IP地址,你需要使用连接到你的容器。

你应该可以运行:

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

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