docker compose不加载数据
我有一个现有的neo4j图像,其中包含数据,我使用以下docker compose不加载数据,docker,neo4j,docker-compose,Docker,Neo4j,Docker Compose,我有一个现有的neo4j图像,其中包含数据,我使用以下docker run命令运行该图像 docker run--publish=7474:7474--volume=$HOME/neo4jdev/data:/data neo4j 当我在http://192.168.99.100:7474/browser/,我确认我的容器中存在节点 我想做的是使用docker compose而不是docker run来运行我的服务。这就是我的docker compose.yml的样子 version: '2' s
docker run
命令运行该图像
docker run--publish=7474:7474--volume=$HOME/neo4jdev/data:/data neo4j
当我在http://192.168.99.100:7474/browser/
,我确认我的容器中存在节点
我想做的是使用docker compose
而不是docker run
来运行我的服务。这就是我的docker compose.yml
的样子
version: '2'
services:
neo4jdev:
image: neo4j
ports:
- "7474:7474"
volumes:
- $HOME/neo4jdev/data
我使用docker compose-up
运行此操作
但是当我检查我的浏览器时,我得到一个没有节点的空数据库。它似乎只加载最新的neo4j图像。请改用此图像
volumes:
- $HOME/neo4jdev/data:/data
所以你的docker-compose.yml应该是这样的
version: '2'
services:
neo4jdev:
container_name: n4j
image: neo4j
ports:
- "7474:7474"
volumes:
- $HOME/neo4jdev/data:/data
docker-compose up -d
然后使用
docker exec n4j ls -al /data
这给了我
total 16
drwxr-xr-x 4 root root 4096 Sep 12 11:16 .
drwxr-xr-x 51 root root 4096 Sep 12 11:20 ..
drwxr-xr-x 3 root root 4096 Sep 12 11:16 databases
drwxr-xr-x 2 root root 4096 Sep 12 11:16 dbms
用这个代替
volumes:
- $HOME/neo4jdev/data:/data
所以你的docker-compose.yml应该是这样的
version: '2'
services:
neo4jdev:
container_name: n4j
image: neo4j
ports:
- "7474:7474"
volumes:
- $HOME/neo4jdev/data:/data
docker-compose up -d
然后使用
docker exec n4j ls -al /data
这给了我
total 16
drwxr-xr-x 4 root root 4096 Sep 12 11:16 .
drwxr-xr-x 51 root root 4096 Sep 12 11:20 ..
drwxr-xr-x 3 root root 4096 Sep 12 11:16 databases
drwxr-xr-x 2 root root 4096 Sep 12 11:16 dbms
我刚刚试过,数据库就创建好了。我会在我的答案中添加更多细节。如果它仍然不起作用,很可能是由$HOME变量引起的。将您的
docker信息
和docker版本
添加到您的问题中。是的,它现在起作用了。您能否确认,当我在数据库中添加节点时,它们存储在我的本地数据文件夹中,而不是容器文件夹中?如果您使用的是Docker for Mac/windows或Docker Toolbox,您的本地用户目录将装载在主机上,以便可以访问。通过启动一个一次性容器并查看卷的内容,可以轻松地对其进行测试<代码>docker run--rm-v$HOME/neo4jdev/data:/temp alpine ls-al/temp我刚刚尝试过,数据库就创建好了。我会在我的答案中添加更多细节。如果它仍然不起作用,很可能是由$HOME变量引起的。将您的docker信息
和docker版本
添加到您的问题中。是的,它现在起作用了。您能否确认,当我在数据库中添加节点时,它们存储在我的本地数据文件夹中,而不是容器文件夹中?如果您使用的是Docker for Mac/windows或Docker Toolbox,您的本地用户目录将装载在主机上,以便可以访问。通过启动一个一次性容器并查看卷的内容,可以轻松地对其进行测试<代码>docker运行--rm-v$HOME/neo4jdev/data:/temp alpine ls-al/temp