1. Téléchargement de Zookeeper
Obtenez les fichiers d'installation de Zookeeper à partir des sources suivantes :
http://apache.org/dist/zookeeper/
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2. Téléchargement de Kafka
Téléchargez les archives de Kafka via ces liens :
http://apache.org/dist/kafka/
http://mirror.bit.edu.cn/apache/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz
3. Création de l'image Docker pour Zookeeper
Utilisez une image existante ou construisez-la personnalisément.
Pour une image de base :
docker pull zookeeper
<p>Alternative avec un Dockerflie personnalisé :</p>
<code>FROM java
ENV ZK_HOME /opt/zkcluster/config
ENV ZK_VERSION zookeeper-3.4.9
RUN mkdir -p $ZK_HOME
COPY ./$ZK_VERSION.tar.gz $ZK_HOME/
RUN tar -xvf $ZK_HOME/$ZK_VERSION.tar.gz -C $ZK_HOME/
RUN rm $ZK_HOME/$ZK_VERSION.tar.gz
RUN chmod a+x $ZK_HOME/$ZK_VERSION/bin/zkServer.sh
RUN mv $ZK_HOME/$ZK_VERSION/conf/zoo_sample.cfg $ZK_HOME/$ZK_VERSION/conf/zoo.cfg
ENTRYPOINT $ZK_HOME/$ZK_VERSION/bin/zkServer.sh start-foreground</code>
<p>Construction de l'image Zookeeper :</p>
<code>docker build -t my-zookeeper:3.4.9 .</code>
<p>Lencement du conteneur :</p>
<code>docker run -d -p 2181:2181 --name zk-node my-zookeeper:3.4.9</code>
<h3>4. Création de l'image Docker pour Kafka</h3>
<p>Élaborez un script de démarrage pour Kafka, nommé <code>kafka-start.sh</code> :</p>
<code>sed -i "s/broker.id=0/broker.id=$NODE_ID/g" $KAFKA_DIR/$KAFKA_PACKAGE/config/server.properties
$KAFKA_DIR/$KAFKA_PACKAGE/bin/kafka-server-start.sh $KAFKA_DIR/$KAFKA_PACKAGE/config/server.properties</code>
<p>Dockerfile associé :</p>
<code>FROM java
ENV KAFKA_DIR /usr/local/app
ENV KAFKA_PACKAGE kafka_2.10-0.10.0.0
RUN mkdir -p $KAFKA_DIR
COPY ./$KAFKA_PACKAGE.tgz $KAFKA_DIR/
COPY ./kafka-start.sh $KAFKA_DIR/
RUN chmod a+x $KAFKA_DIR/kafka-start.sh
RUN tar -xvf $KAFKA_DIR/$KAFKA_PACKAGE.tgz -C $KAFKA_DIR/
RUN rm $KAFKA_DIR/$KAFKA_PACKAGE.tgz
RUN sed -i 's/zookeeper.connect=localhost:2181/zookeeper.connect=zkhost:2181/g' $KAFKA_DIR/$KAFKA_PACKAGE/config/server.properties
CMD $KAFKA_DIR/kafka-start.sh</code>
<p>Construction de l'image Kafka :</p>
<code>docker build -t my-kafka:0.10.0.0 .</code>
<h3>5. Installation de Docker Compose</h3>
<p>Installez d'abord pip, puis Docker Compoce :</p>
<code>yum -y install epel-release
yum -y install python-pip
pip install docker-compose</code>
<p>Vérifiez l'installation avec :</p>
<code>docker-compose version</code>
<h3>6. Lancement des conteneurs avec Docker Compose</h3>
<p>Rédigez un fichier <code>docker-compose.yml</code> pour orchestrer les services :</p>
<code>version: '2'
services:
zookeeper:
image: my-zookeeper:3.4.9
restart: always
kafka-node1:
image: my-kafka:0.10.0.0
ports:
- "9091:9092"
environment:
NODE_ID: 1
links:
- zookeeper:zkhost
restart: always
kafka-node2:
image: my-kafka:0.10.0.0
ports:
- "9092:9092"
environment:
NODE_ID: 2
links:
- zookeeper:zkhost
restart: always
kafka-node3:
image: my-kafka:0.10.0.0
ports:
- "9093:9092"
environment:
NODE_ID: 3
links:
- zookeeper:zkhost
restart: always</code>
<p>Démarrez l'ensemble des conteneurs en exécutant la commande suivante dans le répertoire contenant le fichier YAML :</p>
<code>docker-compose up -d</code>