MacOS Docker 安装
安装和镜像加速参考docker安装教程
Docker 下载Zookeeper 和 kafka 镜像
1 | ~ » docker pull zookeeper:latest |
启动容器
1、创建网络:由于要涉及到zookeeper和kafka之间的通信,所以我们运用docker内部容器通信机制先新建一个网络。
1 | ~ » docker network create app |
运行 docker network ls查看新建的网络
1 | ~ » docker network ls |
运行docker network inspect app查看网络详细信息
1 | ~ » docker network inspect app |
可以看到其连接的containers为空,说明还没有容器连接进来
2、创建Zookeeper容器
1 | ~ » docker run --net=app --name zookeeper -p 2181 -t zookeeper |
遇到了如下问题
1 | docker: Error response from daemon: Conflict. The container name "/zookeeper" is already in use by container "26ffbd391e8c6e5e90b8f593e354f80768f179741e1de35640efacc6303fdad0". You have to remove (or rename) that container to be able to reuse that name. |
docker ps -l 查看发现已经创建的zookeeper 可以使用docker rm 删除
1 | ~ » docker ps -l |
重新执行创建命令
run,创建新容器,并为容器配置一些参数。
-t,在容器内部创建一个tty或者伪终端。
-i,允许主机终端按照容器内部的标准与其交互。
-d,后台运行容器并打印容器名称。
–name,容器名称。
-p,端口映射,参数格式为:主机物理端口:容器内部端口。
最后跟上的就是我们已经下载的镜像
3、创建Kafka容器
1 | ~ » docker run --net=app --name kafka -p 9092 \ |
-e,配置容器环境变量。
–link,链接到另一个容器,参数格式为:目标容器名称:在本容器内的别名。
这里的环境变量设置,其实是就是对即将创建的Kafka配置文件server.properties进行初始化。
4、创建kafka-manager
1 | ~ » docker run --net=app \ |
访问ip:9000即可
5、测试Kafka
进入kafka容器
1 | ~ » docker exec -it kafka /bin/bash |
发送消息
1 | bash-4.4# kafka-console-producer.sh --broker-list localhost:9092 --topic test |
读取消息(需要打开另一个终端)
1 | bash-4.4# kafka-console-consumer.sh \ |
测试成功!(^-^)V

