在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的输出是什么