elasticsearch端口怎么利用docker镜像进行访问

elasticsearch端口怎么利用docker镜像进行访问?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

使用docker stack部署的镜像服务,进入镜像之后,理论上,应该可以通过下面的指令访问本地的elasticsearch服务

curl 本机ip/9200

但是却提示拒绝访问。

后来本机使用上述指令查看之后发现,本机也是拒绝访问。

之后发现,9200端口的elasticsearch服务,是通过打洞的方式连接的远程服务器上的elasticsearch服务,只能通过下面指令访问端口

curl 127.0.0.1:9200

如果想要通过本机ip访问9200端口,则需要在打洞指令的后面加上 -g。

补充知识:docker运行elasticsearch时候,访问不了9200端口,容器一开启就关闭

使用docker安装es的时候,访问9200端口失败,用docker ps 查看容器,发现启动es后,过一段时间会自动关闭。把虚拟机的内存加到4G,还是这样。

其实主要的问题是分配给ES的内存太小了:

1.进入etc目录,编辑sysctl.conf文件:

vi /etc/sysctl.conf

2.添加配置:

vm.max_map_count=262144

3.执行:

sysctl -p

4.启动es如果还是失败,修改limits.conf:

vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

5.最后重启虚拟机,浏览器访问:http://192.168.162.131:9200,可以看到启动成功:

我只修改了sysctl.conf就成功了,没有修改limits.conf

看完上述内容,你们掌握elasticsearch端口怎么利用docker镜像进行访问的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注本站行业资讯频道,感谢各位的阅读!

相关推荐:

Docker容器挂掉后Python如何自动报警与拉起重启

Python无法可靠获取容器崩溃的退出信号,应通过外部监控(如dockerevents)报警,并用tini或os.execv确保信号传递,避免在容器内使用supervisor等进程管理器。 容器崩溃时Python怎么拿到确切的退出信号 Docker容器挂掉,本质是主进程(ENTRYPOINT或CMD...

Interactive Docker exec with docker-py

本文详解如何使用docker-py实现真正的交互式dockerexec-it功能,通过底层socket操作连接宿主机stdin/stdout与容器内进程的I/O,解决exec_run默认非阻塞、不透传终端输入的问题。 本文详解如何使用docker-py实现真正的交互式`dockerexec-it`功...

Flask项目怎么Docker化_编写Dockerfile与docker-compose.yml

Flask应用Docker化失败的根本原因是路径、环境变量作用域和网络绑定三者不匹配:需设WORKDIR确保模块可导入,用environment+os.getenv读变量,启动时指定--host=0.0.0.0避免监听localhost。 Flask应用启动失败:ModuleNotFoundErro...

Python Docker 部署 Python 应用

docker部署python应用需构建含代码、依赖和环境的可移植镜像,核心是编写分层缓存、非root用户、固定依赖版本、环境变量管理配置、stdout日志及本地验证的dockerfile。 用Docker部署Python应用,核心是把代码、依赖和运行环境打包成可移植的镜像,避免“在我机器上能跑”的问...

Python Docker Buildx 的多平台镜像构建

需初始化buildxbuilder实例并启用实验性功能;运行dockerbuildxcreate--use创建多架构builder,再执行dockerbuildxinspect--bootstrap启动container-based构建器,否则报“novaliddriversfound”。 buil...