安装Magento 2.4.6日记之三:elasticsearch 篇
yum -y install java-1.8.0-openjdk
java -version # 看看安装结果
Docker 的一些基本指令
docker container ls -a # 当前运行的container
docker ps # 当前运行的container
docker container rm cc3f2ff51cab # 删除container
docker stop a0c59618bf9e # 停止container
docker container rm cc3f2ff51cab
docker rm a0c59618bf9e # 删除container
Magento必装插件
步骤
这个是官方的教程
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
拉取镜像
docker pull elasticsearch:8.6.2
配置一些参数,不是必须的
# 将docker里的目录挂载到linux的/mydata目录中
# 修改/mydata就可以改掉docker里的
mkdir -p /www/wwwroot/elasticsearch/config
mkdir -p /www/wwwroot/elasticsearch/data
# es可以被远程任何机器访问
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
# 递归更改权限,es需要访问
chmod -R 777 /www/wwwroot/elasticsearch/
启动运行
docker run --name es -d \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-p 9200:9200 -p 9300:9300 elasticsearch:8.6.2
参数说明:
–name es :docker的名字
-p 9200:9200 -p 9300:9300:为暴露两个端口。9200是发送http请求时向es发起请求的端口,9300是es在分布式集群状态下节点间的通信端口
-e “discovery.type=single-node” :指定es以单节点运行
-e ES_JAVA_OPTS=“-Xms64m -Xmx128m”:此参数很重要,如果不指定该参数,es启动会将虚拟机内存全部占用
————————————————
更多运行的参数
# 9200是用户交互端口 9300是集群心跳端口
# -e指定占用的内存大小,生产时可以设置32G
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /www/wwwroot/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /www/wwwroot/elasticsearch/data:/usr/share/elasticsearch/data \
-v /www/wwwroot/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:8.6.2
————————————————
到这里,es服务应该是已经启动了
可通过 浏览器打开 localhost:9200/ 进行查看, 结果应该是这样
{ "name" : "cd0ec4703047", "cluster_name" : "docker-cluster", "cluster_uuid" : "uiUq00mISLShJekUlTHIiw", "version" : { "number" : "8.6.2", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "2d58d0f136141f03239816a4e360a8d17b6d8f29", "build_date" : "2023-02-13T09:35:20.314882762Z", "build_snapshot" : false, "lucene_version" : "9.4.2", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" } 复制配置文件(似乎没必要,该配置文件是当前container的) docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml 进行跨越配置 1、进入容器
docker exec -it es /bin/bash
2、进行配置
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
# 进入配置文件夹
cd config
# 显示文件
ls
结果如下:
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
elasticsearch.yml jvm.options role_mapping.yml users
以下步骤未经验证,主要是出现
vi command not found
似乎是vim虽然已经安装,但container重不可用
# 修改配置文件
vi elasticsearch.yml
(可以在宝塔下修改,
- 配置 Elasticsearch :
宝塔面板文件管理打开 /etc/elasticsearch/elasticsearch.yml
修改以下地方并取消注释
cluster.name: my-application
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: localhost
http.port: 9200
discovery.seed_hosts: [“localhost”]
cluster.initial_master_nodes: [“node-1”]
)
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
ElasticSearch专题(九)-Docker简单部署ElasticSearch (betheme.net)
数据持久化
所谓的持久化就是把容器内需要持久保存的数据同步到宿主机上,我这里映射了三个目录:config、logs、plugins
docker cp es:/usr/share/elasticsearch/config /Users/xxx/Document/docker/es
docker cp es:/usr/share/elasticsearch/logs /Users/xxx/Document/docker/es
docker cp es:/usr/share/elasticsearch/plugins /Users/xxx/Document/docker/es
————————————————