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
本文来自博客园,作者:fwy,转载请注明原文链接:https://www.cnblogs.com/fwynb/p/17109361.html