关于docker上elasticsearch端口占用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于docker上elasticsearch端口占用问题相关的知识,希望对你有一定的参考价值。

参考技术A 我做要做一个用elasticsearch的项目,我就先写一个elasticsearch的demo,

连接上阿里云,然后启动我的elasticsearch

docker run -d  -p 9300:9300 --name elasticsearch 2232dfa6321a

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES11 2232dfa6321a(限制内存的)

然后就愉快的开始写demo,但是我好像忘记了要把9200端口加上,集群的时候要用,我就把9300端口的进程kill了,然后再启动elasticsearch

就出现了port is already 占用了,我就 docker ps 发现我docker中真的有elasticsearch在跑,然后我就 netstat -lnp|grep 9300 查看

但是并没有进程占据9300端口。。。。。。。但是一启动就说端口占用了。

然后没办法我就去请教(果然厉害)

ps -ef |gre elasticsearch 果然就出来了很多死进程,我就挨个kill,杀到最后一个的时候再查看又会冒出一个来,但是我没有弄自启啊。。

反正不管了继续kill,kill几次之后我再docker  ps 发现就没有elasticsearch了,就解决了问题。

但是我不明白的是这个端口都没有进程站用为啥回这样。。。。。。。。。。

使用 Docker 运行 elasticsearch 容器

# 搜索elasticsearch镜像
docker search elasticsearch

# 拉取elasticsearch镜像
docker pull elasticsearch

# 查看所有镜像
docker images

# 运行elasticsearch容器,-d 后台运行容器并打印出容器ID,-p 将容器的9200端口映射到主机的9200端口
docker run -d --name es \\
-p 9200:9200 -p 9300:9300 \\
-e "discovery.type=single-node" \\
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \\
elasticsearch:7.6.2

curl localhost:9200

在浏览器中访问并显示elasticsearch信息:

http://localhost:9200

查看所有运行中的容器:

docker ps

通过容器名称停止容器:

docker container stop es

通过容器名称移除容器:

docker container rm es

以上是关于关于docker上elasticsearch端口占用问题的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发

Elasticsearch:如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发

docker镜像elasticsearch

使用 Docker 运行 elasticsearch 容器

关于在docker中配置elasticsearch容器的方法

运行Docker for Windows,暴露端口时出错