返回

Docker 中使用 TLS 运行 Bitnami/Kafka 完整指南:解决 keystore.jks 和 truststore.jks 未正确挂载

Linux

在 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:确保客户端和服务器配置使用相同的证书和安全协议。