原因是研发有个需求
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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通