【neo4j】解决docker启动neo4j后立刻挂掉的问题

这里只阐述自己遇到的情况和解决方法:

  • 首先我拉取了lastest版本的也就是最新版本的,直接使用该命令即可通过外网访问:
docker run -d -p 7474:7474 -p 7687:7687 --name neo4j \
	-v /usr/local/soft/neo4j/data:/data \
	-v /usr/local/soft/neo4j/logs:/logs \
	-v /usr/local/soft/neo4j/conf:/var/lib/neo4j/conf \
	-v /usr/local/soft/neo4j/import:/var/lib/neo4j/import \
neo4j
  • 但是因为最新版本是5.1.0版本,和正在进行的项目不兼容,所以我打算换取4.x版本,同样使用相同方法会导致容器直接挂掉【docker ps 看不到正在进行的容器】
docker run -d --name neo4j4.4.3 \
-p 7474:7474 -p 7687:7687 \
-v /home/neo4j/data:/data \
-v /home/neo4j/logs:/logs \
-v /home/neo4j/conf:/var/lib/neo4j/conf \
-v /home/neo4j/import:/var/lib/neo4j/import \
--env NEO4J_AUTH=neo4j/neo4j \
neo4j:4.4.3
  • 这里直接说我找到的问题:neo4j4.x和neo4j5.x的启动方式我猜测是不一样,但是4.x版本启动的时候neo4j的服务是没有前台支撑容器进行的,所以会直接挂掉,需要使用一些循环指令来维持容器进程的进行。而5.x版本不需要。简单来说就是4.x需要我们通过-it进去手动启动neo4j,而5.x的dockerfile已经为我们启动了neo4j的服务,也就是有了前台支撑
docker run -d --name neo4j4.4.3 \
-p 7474:7474 -p 7687:7687 \
-v /home/neo4j/data:/data \
-v /home/neo4j/logs:/logs \
-v /home/neo4j/conf:/var/lib/neo4j/conf \
-v /home/neo4j/import:/var/lib/neo4j/import \
--env NEO4J_AUTH=neo4j/neo4j \
neo4j:4.4.3 \
# 这是一个循环指令,加入后可以保证容器进行
tail -f /dev/null 

在这里插入图片描述

  • 但是注意,我们只是维持了容器进程,4.x版本还需要我们进去该容器手动启动neo4j服务才能继续使用
# 进行容器交互模式
docker exec -it neo4j4.4.3 bash
# 进去容器后手动开启neo4j的服务
neo4j start

在这里插入图片描述

这样就启动成功了,外网也可以访问了。
在这里插入图片描述

  • 然后我们就可以退出容器交互模式,我们已经在容器内部开启了服务,容器也有前台支撑而不会主动挂掉了,服务也仍然可用。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NineWaited/article/details/128019013
今日推荐