返回
Docker 中使用 TLS 运行 Bitnami/Kafka 完整指南:解决 keystore.jks 和 truststore.jks 未正确挂载
Linux
2024-03-05 00:40:10
在 Docker 中使用 TLS 运行 Bitnami/Kafka
问题说明
使用 TLS 在 Docker 中运行 Bitnami/Kafka 时,提示 keystore.jks 和 truststore.jks 未正确挂载。
解决方法
步骤 1:安装 Docker
确保系统中已安装 Docker。访问官方网站了解安装说明。
步骤 2:拉取 Bitnami/Kafka 镜像
拉取 Bitnami/Kafka 镜像:
docker pull bitnami/kafka:2.8.1
步骤 3:创建证书
使用 OpenSSL 或其他工具创建 TLS 证书。
步骤 4:挂载证书
使用 -v
选项挂载证书文件:
-v /path/to/localdev_keystore.jks:/bitnami/kafka/conf/certs/kafka.keystore.jks \
-v /path/to/localdev_truststore.jks:/bitnami/kafka/conf/certs/kafka.truststore.jks \
步骤 5:运行容器
设置环境变量并运行容器:
docker run --name kafka_ssl \
-p 9092:9092 \
-p 9093:9093 \
-v /path/to/localdev_keystore.jks:/bitnami/kafka/conf/certs/kafka.keystore.jks \
-v /path/to/localdev_truststore.jks:/bitnami/kafka/conf/certs/kafka.truststore.jks \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=localhost:2181 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,SSL:SSL \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,SSL://localhost:9093 \
-e KAFKA_CFG_SSL_KEYSTORE_LOCATION=/bitnami/kafka/conf/certs/kafka.keystore.jks \
-e KAFKA_CFG_SSL_KEYSTORE_PASSWORD=password \
-e KAFKA_CFG_SSL_TRUSTSTORE_LOCATION=/bitnami/kafka/conf/certs/kafka.truststore.jks \
-e KAFKA_CFG_SSL_TRUSTSTORE_PASSWORD=password \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,SSL://:9093 \
-e KAFKA_CFG_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM= \
bitnami/kafka:2.8.1
步骤 6:验证
检查容器日志验证是否运行正常:
docker logs kafka_ssl
附加说明
- 确保证书创建和配置正确。
- 验证证书文件挂载正确。
- 设置环境变量。
- 检查容器日志解决问题。
结论
通过遵循这些步骤,你可以在 Docker 中使用 TLS 成功运行 Bitnami/Kafka。
常见问题解答
Q1:为什么提示 keystore.jks 和 truststore.jks 未正确挂载?
A1:确保证书文件已正确挂载到容器中。
Q2:如何设置环境变量?
A2:在 docker run
命令中使用 -e
选项设置环境变量。
Q3:如何检查容器日志?
A3:使用 docker logs
命令查看容器日志。
Q4:如何解决证书创建问题?
A4:确保使用正确的工具和方法创建证书。
Q5:在使用 TLS 时有什么需要注意的吗?
A5:确保客户端和服务器配置使用相同的证书和安全协议。