Docker部署Kafka
阿新 • • 發佈:2021-08-12
pull 拉取映象
wurstmeister/zookeeper Overview
docker pull wurstmeister/zookeeper
wurstmeister/kafka Overview
docker pull wurstmeister/kafka
部署單Broker
定義 docker-compose-single-broker.yml
:
version: '3.8' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - D:\var\run\docker.sock:/var/run/docker.sock
kafka 環境變數:
- KAFKA_ADVERTISED_HOST_NAME:你可以修改主機名來以匹配docker主機IP。注意:如果要執行多個Broker,請不要使用localhost或127.0.0.1作為主機ip
- KAFKA_CREATE_TOPICS:kafka-docker在建立期間自動在kafka中建立主題,例如
test:1:1
表示主題test
包含1個分割槽和1個副本。 - KAFKA_ZOOKEEPER_CONNECT:現在是強制的環境變數,表示kafka的zookeeper connect string。
volumes 卷對映:
- 宿主機中的檔案路徑:容器中的檔案路徑,而我的宿主機是Windows主機。
GitHub 上的檔案
build: .
修改為image: wurstmeister/kafka
,修改前會出現以下錯誤:failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount698554617/Dockerfile: no such file or directory
ERROR: Service 'kafka' failed to build : Build failed
啟動與停止
啟動命令:
docker-compose -f docker-compose-single-broker.yml up -d
結尾不加
-d
會佔用當前命令列視窗。因為按Ctrl
+C
會自動 stop 容器。
停止命令:
docker-compose -f docker-compose-single-broker.yml stop