更改目录名称后运行堆栈时 Docker 卷名称发生更改

问题描述 投票:0回答:3

我正在 Windows 上试验 docker 并为其创建一个堆栈。

我刚刚发现,当我使用 docker-compose up -d 时,会使用像foldername_volumename 这样的名称创建docker 卷。

我在一个文件夹下有一个用于堆栈的工作应用程序,只想更改文件夹名称。但发现虽然我改变了它,但它阻止我使用以前使用过的相同卷。

如果我移动到另一个卷名称,我将丢失一些配置和数据。

有什么方法可以重复使用相同的卷,但仍然可以更改文件夹名称?

最佳实践是什么?

docker docker-compose docker-volume
3个回答
1
投票

您可以使用

external: true
让 docker compose 知道它不需要创建卷,它已经存在(因此,文件夹名称不会被添加到前面)。

version: '3.2'

volumes:
  mydata:
    external: true

services:
  test:
    image: alpine
    volumes: 
    - mydata:/data

外部卷文档


0
投票

卷名称基于项目名称。默认情况下,项目名称基于包含文件夹的名称,但您可以通过执行

docker-compose -p yourprojectname
来覆盖它。因此,如果您这样做,无论包含文件夹名称如何,您都可以获得一致的卷名称。


0
投票

谢谢@itamar-turner-trauring,这真的帮助了我!

为了澄清,

-p
选项应设置在
docker-compose
命令之后、子命令(如
up
:

)之前

$ docker-compose -p projectName up -d

© www.soinside.com 2019 - 2024. All rights reserved.