以下是我用来安装 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。
您将使用 Docker 网络并在映像之间使用 DNS 服务名称。
我如何将其设置为集群
如果您不想使用 Compose,那么 docker run
仍然有效。或者使用 Terraform 或 Kubernetes/OpenShift
FWIW,我建议你使用现有的动物园管理员和Kafka的图像,而不是滚动你自己的