福利:这是我的个人IT资源网站,所有资源都免费,注册登录后就可以看到密码,需要什么大家尽情选取!
- 从docker下载elashticsearch镜像(可以指定版本号)
docker pull elasticsearch:7.4.2
2. 从docker下载kibana可视化镜像(可以指定版本号)
docker pull kibana:7.4.2
3. 分别创建elasticsearch的外部挂载的配置目录和数据目录
mkdir -p /data/elasticsearch/config
mkdir -p /data/elasticsearch/data
- 配置elasticsearch可以被任意机器访问
echo "http.host:0.0.0.0">>/data/elasticsearch/config/elasticsearch.yml
- 启动elasticsearch容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300\
-e "discovery.type=single-node"\
-e ES_JAVA_OPTS="-Xms64m -Xmx128m"\
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml\
-v /data/elasticsearch/data:/usr/share/elasticsearch/data\
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins\
-d elasticsearch:7.4.2
解释:1、9200是客户端访问端口
2、9300是分布式节点互相访问端口
3、single-node以单节点模式运行
4、ES_JAVA_OPTS设置JVM参数
5、-v挂载外部目录及文件,和容器内目录和文件映射
6、-d要启动的容器镜像
- 执行命令启动之后发现,一会就自动挂掉了,这时我们可以查看日志,寻找一下原因
docker logs elasticsearch
可以看到是由于外部挂载的data文件夹权限不足导致的,那么我们通过chmod命令赋予其他用户对data文件夹的写权限
chmod 777 /data/elasticsearch/data
之后在重新启动容器,通过docker ps查看
可以看到已经启动成功
这里要记的,如果服务器设置有安全组,需要将9200、9300端口设置在安全组,不然外界无法访问
至此,docker启动elasticsearch就成功了!