具有相同名称的Docker实例将被覆盖

我在一个Windows环境下工作,使用最新版本的docker和docker-compose。 我想要的是我的硬盘驱动器上的每个项目都有自己的文件夹,并在其相应的docker-compose yml文件。

当我跑步

docker-compose up -d 

对于项目中的特定文件,它将覆盖最后的项目实例。 我相信这是因为我为所有项目(nginx,db等)使用相同的名称。

我怎样才能阻止这种行为? 我想,例如,我的数据库实例为每个项目坚持,所以当我在其他项目工作后再次启动时,它仍然会有相同的数据。 我宁愿不要为每个项目命名不同的名称实例…我有大量的这些实例,并且浪费了我的时间来重新configuration这些文件。

感谢您的任何帮助,您可以提供。

要更好地隔离docker-compose级别,可以使用COMPOSE_PROJECT_NAME(请参阅https://docs.docker.com/compose/reference/envvars/#compose_project_name

因此,创build例如docker-compose-script.bat文件,内容如下:

 set COMPOSE_PROJECT_NAME=your_project_name docker-compose %* 

%* – 将允许您通过脚本将所有docker-compose命令传递给docker-compose,以便您可以轻松地将: docker-compose-script.bat up -d

请注意不要使用docker-compose.bat命名您的.bat脚本,因为您将无限循环登陆。