1.拉取镜像
docker pull zookeeper
docker pull bitnami/kafka
2.创建容器,设置端口映射
# 单机启动zookeeper
docker run --name zookeeper -p 2181:2181 -itd --restart=always --privileged=true wurstmeister/zookeeper
# 单机启动kafka
docker run --name kafka -p 9092:9092 -itd --restart=always --privileged=true -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=127.0.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://127.0.0.1:9092 wurstmeister/kafka
3.这种方式启动的容器默认网络模式是bridge桥接模式。这种方式,容器与容器之间不能直接通过宿主机ip加端口进行通信,所以会出现kafka连接不到zookeeper的情况,连接被拒绝。解决方式是创建kafka容器时指定 KAFKA_ZOOKEEPER_CONNECT=127.0.0.1:2181 的ip为容器ip,而不是宿主机ip,然后就可以了。或者就是用host的网络方式,容器间就可以直接通过宿主机加端口进行通信。