kafka和es容器部署

原因是研发有个需求

Kafka和es容器环境搭建

容器使用的软件相关版本

软件 版本 端口映射
es 6.2.2 9200:9200,9300:9300
zk 3.4.6 2181:2181
kafka 2.2.0 9092:9092

es

1.镜像拉取

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.2
docker tag docker.elastic.co/elasticsearch/elasticsearch:6.2.2   elasticsearch:6.2.2 

2.将配置文件复制到本地

#启动容器
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  elasticsearch:6.2.2
#将配置文件复制到本地
docker cp es:/usr/share/elasticsearch/config  .
#进入容器终端
docker exec -it  es /bin/bash

映射目录
/mydata/elasticsearch/config | data | logs

容器中配置文件目录,数据目录,日志目录

配置文件目录

/usr/share/elasticsearch/config/

数据目录

/usr/share/elasticsearch/data/

日志目录

/usr/share/elasticsearch/logs/

3.挂载数据卷启动

docker run --name es -p 9200:9200 -p 9300:9300  \
-e "discovery.type=single-node"    \      
-v /mydata/elasticsearch/config/:/usr/share/elasticsearch/config   \
-v /mydata/elasticsearch/data/:/usr/share/elasticsearch/data      \
-v /mydata/elasticsearch/logs/:/usr/share/elasticsearch/logs       \
-d elasticsearch:6.2.2

4.设置容器使用内存大小

-m 选项限制容器使用的内存上限为4G。同时设置 memory-swap 值为 -1,它表示容器程序以使用的 swap 空间使用不受限制\

docker run --name es -p 9200:9200 -p 9300:9300  \
-m  4G --memory-swap -1            \               
-e "discovery.type=single-node"    \      
-v /mydata/elasticsearch/config/:/usr/share/elasticsearch/config   \
-v /mydata/elasticsearch/data/:/usr/share/elasticsearch/data      \
-v /mydata/elasticsearch/logs/:/usr/share/elasticsearch/logs       \
-d elasticsearch:6.2.2

#查看限制
docker stats es
内存占用约为1.5个G

kafka

1.镜像拉取

#zk镜像拉取
docker pull wurstmeister/zookeeper:3.4.6
docker tag wurstmeister/zookeeper:3.4.6  zookeeper:3.4.6
#kafka镜像拉取
docker pull wurstmeister/kafka:2.12-2.2.0
docker tag  wurstmeister/kafka:2.12-2.2.0    kafka:2.12-2.2.0

2.将kafka拷贝到本地

#运行zk容器
docker run -d --name zookeeper -p 2181:2181   zookeeper:3.4.6
#运行kafka容器 
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=192.168.1.96:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.1.96 --env KAFKA_ADVERTISED_PORT=9092  --env KAFKA_LOG_DIRS=/kafka/kafka-logs-1  kafka:2.12-2.20
#将其拷贝到本地做数据卷共享,否则容器不会正常运行
mkdir  /mydata/kafka/   
cd  /mydata/kafka/
docker cp kafka:/opt/kafka/ .
#创建数据目录
mkdir data

容器中kafka软件安装目录

/opt/kafka

数据目录

/kafak

3.运行zk和kafka

#运行zk
docker run -d --name zookeeper -p 2181:2181   zookeeper:3.4.6
#运行kafka
docker run -d --name kafka --publish 9092:9092  \
--link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=192.168.1.96:2181 \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.1.96  \
--env KAFKA_ADVERTISED_PORT=9092  \
--env KAFKA_LOG_DIRS=/kafka/kafka-logs   \
-v  /mydata/kafka/kafka/:/opt/kafka    \
-v  /mydata/kafka/data/:/kafka         kafka:2.12-2.2.0

可进入容器进行生产消费操作

docker exec -it kafka /bin/bash
posted @ 2023-02-10 16:28  VE02  阅读(118)  评论(0编辑  收藏  举报