# 安装路径
DIR="/opt/docker/demo"
DOCKER_NAME="docker-elasticsearch"
# 创建目录结构
mkdir -p "$DIR/elasticsearch/logs"
mkdir -p "$DIR/elasticsearch/data"
mkdir -p "$DIR/elasticsearch/config"
mkdir -p "$DIR/elasticsearch/plugins"
# 赋予文件权限(建议使用更安全的权限)
chmod -R 755 $DIR/elasticsearch/
chown -R 1000:1000 $DIR/elasticsearch/
docker run -d \
  --restart=always \
  --name elasticsearch \
  --network host \
  -p 9388:9200 \
  -p 9389:9300 \
  --privileged \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
  docker.elastic.co/elasticsearch/elasticsearch:7.17.23
docker cp elasticsearch:/usr/share/elasticsearch/data $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/plugins $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/config $DIR/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/logs $DIR/elasticsearch/
docker stop elasticsearch
docker rm elasticsearch
# 使用适合 2GB 服务器的内存配置
docker run -d \
  --restart=always \
  --name "$DOCKER_NAME" \
  --network host \
  -v "$DIR/elasticsearch/data:/usr/share/elasticsearch/data" \
  -v "$DIR/elasticsearch/plugins:/usr/share/elasticsearch/plugins" \
  -v "$DIR/elasticsearch/config:/usr/share/elasticsearch/config" \
  -v "$DIR/elasticsearch/logs:/usr/share/elasticsearch/logs" \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "xpack.security.enabled=false" \
  docker.elastic.co/elasticsearch/elasticsearch:7.17.23
        修改配置文件 $DIR/elasticsearch/config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200
docker run -d \
  --restart=always \
  --name "$DOCKER_NAME" \
  --network host \
  -v "$DIR/elasticsearch/data:/usr/share/elasticsearch/data" \
  -v "$DIR/elasticsearch/plugins:/usr/share/elasticsearch/plugins" \
  -v "$DIR/elasticsearch/config:/usr/share/elasticsearch/config" \
  -v "$DIR/elasticsearch/logs:/usr/share/elasticsearch/logs" \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "ELASTIC_PASSWORD=123456" \
  docker.elastic.co/elasticsearch/elasticsearch:7.17.23
        使用以下命令查看 Elasticsearch 容器的日志:
docker logs -f "$DOCKER_NAME"
docker ps -a
        在浏览器中访问以下地址,检查 Elasticsearch 是否正常运行
默认的用户名为:elastic
密码:123456
http://localhost:9200
        
