启动es容器需要考虑几个问题
- 端口暴露问题 9200、9300
- 数据卷的挂载问题 data、plugins、conf
- 吃内存 - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
扩展命令
docker stats 容器id # 查看容器的cpu内存和网络状态
启动es测试
(--net somenetwork ? 网络配置)
9200作为Http协议,主要用于外部通讯( ES节点 和 外部 通讯使用 )
9300作为Tcp协议,jar之间就是通过tcp协议通讯( ES节点之间通讯使用 )
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
启动之后很卡
使用 docker stats 容器id 查看下cpu状态 ,发现占用的很大
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
ba236371acd0 elasticsearch 0.32% 1.226GiB / 3.7GiB 33.12% 0B / 0B 0B / 0B 43
测试访问
[root@xiaoyequ ~]# curl localhost:9200
{
"name" : "ba236371acd0",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "4BW_ZS-JQSu_HcuO8Vcpig",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
增加上内存限制启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
启动之后,使用 docker stats 查看下cpu状态
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
179b21041d90 elasticsearch 0.72% 342MiB / 3.7GiB 9.02% 0B / 0B 0B / 0B 43
测试访问
效果一样,ok!