在docker compose中强制创建绑定挂载

在docker compose中强制创建绑定挂载,docker,neo4j,docker-compose,Docker,Neo4j,Docker Compose,我正在尝试使用docker compose为数据和日志创建一个使用主机系统目录的neo4j容器。我的撰写文件如下所示 neo4j: image: neo4j:3.5.6 ports: - "127.0.0.1:7474:7474" - "127.0.0.1:7473:7473" - "127.0.0.1:7687:7687" environment: NEO4J_AUTH: "none" volumes: - "~/neo4j/data:/

我正在尝试使用
docker compose
数据和
日志创建一个使用主机系统目录的neo4j容器。我的撰写文件如下所示

neo4j:
  image: neo4j:3.5.6
  ports:
    - "127.0.0.1:7474:7474"
    - "127.0.0.1:7473:7473"
    - "127.0.0.1:7687:7687"
  environment:
    NEO4J_AUTH: "none"
  volumes:
    - "~/neo4j/data:/data"
    - "~/neo4j/logs:/logs"
"Binds": [
     "/home/rbusche/neo4j/logs:/logs:rw",
     "6f989b981c12a252776404343044b6678e0fac48f927e80964bcef409ab53eef:/data:rw"
],

但是,它仅适用于
日志
目录,对于
数据
目录,容器保留自己的卷。docker inspect的binds部分如下所示

neo4j:
  image: neo4j:3.5.6
  ports:
    - "127.0.0.1:7474:7474"
    - "127.0.0.1:7473:7473"
    - "127.0.0.1:7687:7687"
  environment:
    NEO4J_AUTH: "none"
  volumes:
    - "~/neo4j/data:/data"
    - "~/neo4j/logs:/logs"
"Binds": [
     "/home/rbusche/neo4j/logs:/logs:rw",
     "6f989b981c12a252776404343044b6678e0fac48f927e80964bcef409ab53eef:/data:rw"
],


奇怪的是,当我使用
docker run
并在那里指定音量时,它就可以工作了。将
数据
日志
声明为容器卷。有没有办法强迫docker compose重写这些

卸下卷
6f989b981c12a252776404343044b6678e0fac48f927e80964bcef409ab53eef
及其关联的容器后,其工作正常。容器似乎附着在上一次启动时创建的卷上。

我试图复制您的问题,但没有成功。对我来说,这是应该的。我也在没有卷的情况下启动了它(因此它会创建自己的卷),然后用卷重新启动它,并且它正确地创建了卷。它们在Dockerfile中声明为卷这一事实对行为没有影响。你能再次检查一下你是否使用了这个版本的docker compose吗?你是否尝试了绝对路径?如果你没有错误地创建一些命名奇怪的卷,请尝试检查一下。。。docker volume ls的输出是什么