腾讯云docker安装elasticsearch(docker 启动elasticsearch镜像,挂载目录后报错的解决)
腾讯云docker安装elasticsearch
docker 启动elasticsearch镜像,挂载目录后报错的解决从docker hub下载了一个es的镜像,版本为6.4.2,详细信息如下:
比较重要的就是这两条,第一个是工作目录,挂载目录也需要和这里对应;第二个是启动命令,这里是指定了一个预先写好的启动脚本。所以我启动了一个空容器去查看了下容器内的情况:
容器内部目录结构如上图,data是用来存放数据,logs用来存放日志。
接着查看下启动脚本
/usr/local/bin/docker-entrypoint.sh
前半部分我也是看的一知半解,不过真正和挂载目录相关的是最后这部分,这里处理了挂载目录后的操作,大致意思是:
如果是root用户(docker启动容器,默认是以root用户身份),并且 TAKE_FILE_OWNERSHIP 变量存在,则将/usr/share/elasticsearch/{data,logs},这两个目录都改变为1000用户所属(这里也可以看到最终存储数据的路径为data,所以挂载时应该挂载到data下)。
id为1000的用户:
正是elasticsearch用户,所以如果不挂载任何目录直接启动容器即可,如果挂载,那么就添加一个变量,任意赋值,es可以正常启动。
docker run -itd -v /root/es-data/:/usr/share/elasticsearch/data -e TAKE_FILE_OWNERSHIP=111 -p 9200:9200 --name es elasticsearch:6.4.2
补充知识:记一次docker安装elasticsearch及遇到的坑
先给一行命令
docker run -d -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name=<your es name> elasticsearch:<es version>
使用该命令可直接安装并运行es的docker 镜像容器
问题
使用命令docker run -d -p 9200:9200 -p 9300:9300 --name=<your es name> elasticsearch:<es version>启动, 然后想看是否启动起来了,于是使用docker ps命令发现:
es并未启动起来。
于是又用docker ps -a命令:
发现启动终止了。
然后用docker logs -f <container id>命令查看es的启动日志:
拉到最下面:
长这样:
power management: Memory: 4k page, physical 1882892k(89076k free), swap 0k(0k free) vm_info: OpenJDK 64-Bit Server VM (25.181-b13) for linux-amd64 JRE (1.8.0_181-8u181-b13-2~deb9u1-b13), built on Oct 22 2018 18:05:23 by "pbuilder" with gcc 6.3.0 20170516 time: Fri Nov 23 07:00:34 2018 elapsed time: 0 seconds (0d 0h 0m 0s)
于是复制报错信息Google一波,发现问题所在。elasticsearch5.+配置默认的内存是2g。我给docker的内存也只有2g,于是就GG了。
删除了旧容器,和旧镜像后,在docker启动命令中加上-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"解决问题
docker ps :
最后访问一波9200端口:
OJBK
以上这篇docker 启动elasticsearch镜像,挂载目录后报错的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
- docker容器启动后秒退(解决docker run 或者 docker restart 启动镜像就自动退出)
- docker 命令上传镜像到镜像仓库(Docker 使用国内镜像仓库的方法)
- docker搭建mysql服务(Docker部署Mysql集群的实现)
- docker线上部署流程(Docker部署Rancher的方法无坑)
- 解决docker的tls(ssl)证书过期问题(解决docker的tlsssl证书过期问题)
- docker容器端口和内部进程(Docker动态给容器Container暴露端口操作)
- docker容器分配(Docker容器数据卷原理及使用方法解析)
- web开发如何正确使用docker(Docker部署web项目的实现)
- docker容器解决隔离的技术(Docker+selenium实现自动化健康报备的方法)
- docker容器临时网络连接(Docker与iptables及实现bridge方式网络隔离与通信操作)
- docker容器如何更改tomcat端口(Docker方式启动tomcat访问首页出现404错误)
- docker重启报错(Docker启动为Exited状态)
- docker和tomcat建立连接(如何基于Dockerfile构建tomcat镜像)
- docker容器技术搭建个人博客(使用Portainer部署Docker容器的项目实践)
- docker镜像和容器(使用docker build kit构建树莓派上可用的Docker镜像)
- docker load镜像报错(Docker load之后镜像名字为none问题解决方法)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
- 小浴室,大民生 缙云3200多户困难群众洗上免费热水澡(小浴室大民生缙云3200多户困难群众洗上免费热水澡)
热门推荐
- tomcat运行中找不到路径(Tomcat将配置文件放在外部的解决方法)
- laravel初始化(Laravel 登录后清空COOKIE的操作方法)
- servertemporarilyunavailable(Service Temporarily Unavailable的503错误是怎么回事?)
- 阿里云服务器搭建linux学习环境(Mac 下阿里云服务器的配置方法)
- win10安装mysql8.0如何启动(win10下mysql 8.0.23 安装配置方法图文教程)
- html radio样式(利用纯CSS自定义Checkbox和Radio的样式示例代码)
- 织梦dedecms建站教程(详解DEDECMS织梦模板随机调用文章数据方法汇总教程)
- mysql的innodb设置(修改MySQL数据库引擎为InnoDB的操作)
- 怎么用单元测试php(PHP使用phpunit进行单元测试示例)
- a标签添加点击事件的几种方式
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9