-p或-项目名称选项在停靠-组合命令中的目的是什么?
它的用例是什么?
我是个新手,还没有开始与码头人建立联系。码头联网用的是项目名称吗?
当我在VisualStudio2019中添加停靠器支持时,Visual运行如下所示的一些停靠器组合命令。在每个选项中,都有一个-p选项。我对此很好奇。
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi config
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi build
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi up -d --no-build --force-recreate --remove-orphans发布于 2020-05-31 11:27:34
如果您多次运行docker-compose,它使用项目名称将一个目录的容器、网络和卷与另一个目录的容器、网络和卷分开。Compose不保持任何文件系统状态或运行后台守护进程,因此容器上的元数据是跟踪这一点的唯一方法。
假设您有三个组合项目,project-a/docker-compose.yml、project-b/docker-compose.yml和project-c/docker-compose.yml都有一个名为db:的服务。由于它们的项目名称不同,Compose知道它不应该为另一个项目重用一个db容器,它知道哪个容器应该被docker-compose down销毁,等等。
如果要在同一个目录中运行相同组合堆栈的多个副本,则需要一个docker-compose -p选项。否则,目录名将被用作默认的项目名称,并且它们之间会发生冲突。这可能就是Visual正在考虑的问题。
如果您查看docker ps、docker network ls和docker volume ls输出,您将看到对象名称project-a_db_1中包含的名称。如果您使用这些命令的详细inspect表单,您将看到一些与撰写相关的标签,而这正是Compose实际上所要寻找的。
发布于 2020-05-31 11:23:49
默认情况下,将项目名称以目录组合命令的basename为基础运行。可以通过为每个命令传递一个-p / --project-name选项或设置COMPOSE_PROJECT_NAME环境变量来重写项目名称。
用例基本上是用这个来维护不同的项目。例如:-您可以使用相同的docker-compose.yml来拥有两个不同的项目。
在你提到的命令中
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi config
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi build
docker-compose -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\docker-compose.override.yml" -f "D:\Trials\Docker\VsDokWeb\DokWeb3\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose5511081461456614166 --no-ansi up -d --no-build --force-recreate --remove-orphans如果您看到,它正在操作相同的项目,这就是为什么会给出-p。
https://stackoverflow.com/questions/62114797
复制相似问题