1,拉取镜像
docker pull elasticsearch:7.1.1
2,设定权限
权限问题,需要把/home/es/data目录设定权限,宿主主机设置,否则 es 启动不起来
chmod 777 /home/es/data
3,启动容器
单节点:
docker run --name es -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 -v /etc/localtime:/etc/localtime:ro -v /home/es/data:/usr/share/elasticsearch/data elasticsearch:7.1.1
集群:
docker run --name es1 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 -v /etc/localtime:/etc/localtime:ro -v /home/es/data/node1:/usr/share/elasticsearch/data -v /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.1.1
docker run --name es2 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9201:9201 -p 9301:9301 -v /etc/localtime:/etc/localtime:ro -v /home/es/data/node2:/usr/share/elasticsearch/data -v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.1.1
es1.yml 和 es2.yml 两文件链接: https://pan.baidu.com/s/15jQ4q6LlFVDBB4vWLYgS4A 提取码: 4p4v
yml 文件中需指定主服务器
cluster.initial_master_nodes: es-node1
Docker 安装运行 ElasticSearch 遇到的问题
ES 的默认分配的内存太大了。进程被自动杀死了,通过以下命令可以解决
sudo sysctl -w vm.max_map_count=262144
参考: