1.拉取镜像
docker pull elasticsearch:7.13.2
2.创建挂在文件
# 创建目录
mkdir -p /www/elasticsearch/config
mkdir -p /www/elasticsearch/data
mkdir -p /www/elasticsearch/plugins
# 写入配置文件
cat > /www/elasticsearch/config/elasticsearch.yml << EOF
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: '*'
EOF
# 赋权
chmod 777 /www/elasticsearch/data
chmod 777 /www/elasticsearch/plugins
chmod 777 /www/elasticsearch/config/elasticsearch.yml
3.创建elasticsearch容器
docker run --privileged=true --restart=always --net=randeng_network --ip 192.168.1.62 --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1g -Xmx2g" -v /www/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /www/elasticsearch/data:/usr/share/elasticsearch/data -v /www/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.13.2
# 其中elasticsearch.yml是挂载的配置文件
# data是挂载的数据,
# plugins是es的插件,如ik,
# 设置为单节点
-e "discovery.type=single-node"
# 指定运行最小和最大运行内存
-e ES_JAVA_OPTS="-Xms1g -Xmx2g"
--net=randeng_network --ip 192.168.1.62 #加入randeng_network,并使用192.168.1.62
--restart=always # 开机启动
--privileged=true # 特权模式
4.把elasticsearch加入到network中
不加入的话,elasticsearch容器无法访问外部网络
docker network connect bridge elasticsearch
5.测试是否配置成功
# 如果用apipost请求需要注意用get请求
curl http://localhost:9200