提问者:小点点

我怎样才能将 kafka 作为单独的 docker 镜像安装和运行,而不是 Zookeeper


以下是我用来安装 zookeeper 的当前 Dockerfile ,然后在 CentOS 容器上运行它:

FROM centos:7

RUN yum -y --quiet install wget && yum -y --quiet install java-11-openjdk && yum -y --quiet autoremove && yum clean all  && rm -rf /var/cache/yum

RUN wget -q http://apache.forsale.plus/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
RUN tar -xzf zookeeper-3.4.14.tar.gz
RUN mv zookeeper-3.4.14 /opt/zookeeper
RUN cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

EXPOSE 2181 2888 3888

WORKDIR /opt/zookeeper

VOLUME ["/opt/zookeeper/conf", "tmp/zookeeper"]

ENTRYPOINT ["/opt/zookeeper/bin/zkServer.sh"]
CMD ["start-foreground"]

我最困惑的是我如何让两个服务作为单独的图像/容器运行,但仍然相互交互。https://stackoverflow.com/a/45111909/12585645

我也不知道如何将它设置为一个集群。如果可能的话,我宁愿不用docker compose。


共1个答案

匿名用户

您将使用 Docker 网络并在映像之间使用 DNS 服务名称。

我如何将其设置为集群

如果您不想使用 Compose,那么 docker run 仍然有效。或者使用 Terraform 或 Kubernetes/OpenShift

FWIW,我建议你使用现有的动物园管理员和Kafka的图像,而不是滚动你自己的