docker安装es

1.下载镜像
es:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
es界面:
docker pull mobz/elasticsearch-head:5

2.启动容器:
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
3.修改参数:
3.1 es跨域参数:
[root@qixin conf.d]# docker exec -it es /bin/bash
[root@f057fcd3b00a elasticsearch]# cd config/
[root@f057fcd3b00a config]# cat elasticsearch.yml
添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
重启es容器:
[root@qixin conf.d]# docker restart es
3.2 es页面外部访问:
[root@qixin conf.d]# docker exec -it es_admin bash
[root@qixin conf.d]# docker cp es_admin:/usr/src/app/Gruntfile.js .
修改配置,添加hostname:
connect: {
    server: {
        options: {
            hostname: '0.0.0.0',
            port: 9100,
            base: '.',
            keepalive: true
        }
    }
}
替换配置:
docker1.8:docker cp Gruntfile.js es_admin:/usr/src/app/
docker1.7 docker cp 会报错Error: Path not specified
方法如下:
[root@qixin conf.d]# docker ps|grep elasticsearch-head
7a15021e618a        mobz/elasticsearch-head:5                             "/bin/sh -c 'grunt s   28 minutes ago      Up 19 minutes       0.0.0.0:9100->9100/tcp                             es_admin     
[root@qixin ~]# docker inspect -f '{{.Id}}' c508617918df
[root@qixin ~]# cp Gruntfile.js /var/lib/docker/devicemapper/mnt/7a15021e618ab0a4409ab342ee265b0ae192e5a5056951b82337df55a3ddb3d6/rootfs/usr/src/app/
docker restart es_admin

3.3 也可以通过nginx转发:

nginx配置:
server {
    listen      9111;
    server_name  localhost;
    charset     utf-8;

    client_max_body_size 75M;   # adjust to taste

    location / {
        proxy_pass http://localhost:9100;
    }
}

server {
    listen      9222;
    server_name  localhost;
    charset     utf-8;
    
    client_max_body_size 75M;   # adjust to taste
    
    location / {
        proxy_pass http://localhost:9200;
    }
}

中文分词器插件安装:
https://www.cnblogs.com/zlslch/p/6440373.html
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.3.2
[root@qixin test]# cp elasticsearch-analysis-ik-6.3.2.zip /var/lib/docker/devicemapper/mnt/7a15021e618ab0a4409ab342ee265b0ae192e5a5056951b82337df55a3ddb3d6/rootfs/home/
[root@7a15021e618a elasticsearch]# docker exec -it 7a15021e618a bash
[root@7a15021e618a elasticsearch]# cd plugins
[root@7a15021e618a elasticsearch]# mkdir ik
[root@7a15021e618a elasticsearch]# cd ik
[root@7a15021e618a elasticsearch]# cp /home/elasticsearch-analysis-ik-6.3.2.zip .
[root@7a15021e618a elasticsearch]# unzip elasticsearch-analysis-ik-6.3.2.zip
[root@7a15021e618a elasticsearch]# rm -rf elasticsearch-analysis-ik-6.3.2.zip
[root@7a15021e618a elasticsearch]# exit
[root@qixin test]# docker restart 7a15021e618a

### 使用Docker安装Elasticsearch的教程 #### 安装前准备 为了确保顺利安装,需确认已正确配置好Docker环境并能够正常运行容器服务[^2]。 #### 下载官方镜像 通过执行如下命令来获取指定版本(例如7.14.0)的Elasticsearch Docker镜像: ```bash docker pull docker.elastic.co/elasticsearch/elasticsearch:7.14.0 ``` 这一步骤会从Elastic官方仓库下载对应标签下的最新构建版本[^1]。 #### 启动Elasticsearch实例 创建一个新的网络以便后续可以方便地连接其他组件如Kibana等工具;接着启动单节点模式下的Elasticsearch容器。这里假设使用默认设置,并开放9200端口用于HTTP通信以及9300端口作为集群间通讯接口: ```bash docker network create esnet docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ --network=esnet \ -d docker.elastic.co/elasticsearch/elasticsearch:7.14.0 ``` 上述操作定义了一个名为`elasticsearch`的新容器,并将其加入到之前建立好的虚拟网桥中去[^3]。 #### 配置持久化存储 为了避免数据丢失,在实际生产环境中建议将重要目录映射至宿主机路径下保存。比如把配置文件夹复制出来便于修改参数设定: ```bash mkdir -p /mydata/es/config docker cp elasticsearch:/usr/share/elasticsearch/config/ /mydata/es/ ``` 之后可以在本地编辑这些文档后再送回给正在运行的服务进程加载应用新的更改项。 #### 测试访问 最后可以通过浏览器或其他RESTful客户端尝试请求http://localhost:9200/_cat/nodes?v验证是否成功部署完成。如果一切正常的话应该能看到有关当前节点的信息列表显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值