首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-p的用途是什么?

-p的用途是什么?
EN

Stack Overflow用户
提问于 2020-05-31 10:26:31
回答 2查看 5.3K关注 0票数 10

-p或-项目名称选项在停靠-组合命令中的目的是什么?

它的用例是什么?

我是个新手,还没有开始与码头人建立联系。码头联网用的是项目名称吗?

当我在VisualStudio2019中添加停靠器支持时,Visual运行如下所示的一些停靠器组合命令。在每个选项中,都有一个-p选项。我对此很好奇。

代码语言:javascript
复制
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

我见过码头管理员这里,也见过,但没能从那里得到多少。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-31 11:27:34

如果您多次运行docker-compose,它使用项目名称将一个目录的容器、网络和卷与另一个目录的容器、网络和卷分开。Compose不保持任何文件系统状态或运行后台守护进程,因此容器上的元数据是跟踪这一点的唯一方法。

假设您有三个组合项目,project-a/docker-compose.ymlproject-b/docker-compose.ymlproject-c/docker-compose.yml都有一个名为db:的服务。由于它们的项目名称不同,Compose知道它不应该为另一个项目重用一个db容器,它知道哪个容器应该被docker-compose down销毁,等等。

如果要在同一个目录中运行相同组合堆栈的多个副本,则需要一个docker-compose -p选项。否则,目录名将被用作默认的项目名称,并且它们之间会发生冲突。这可能就是Visual正在考虑的问题。

如果您查看docker psdocker network lsdocker volume ls输出,您将看到对象名称project-a_db_1中包含的名称。如果您使用这些命令的详细inspect表单,您将看到一些与撰写相关的标签,而这正是Compose实际上所要寻找的。

票数 7
EN

Stack Overflow用户

发布于 2020-05-31 11:23:49

默认情况下,将项目名称以目录组合命令的basename为基础运行。可以通过为每个命令传递一个-p / --project-name选项或设置COMPOSE_PROJECT_NAME环境变量来重写项目名称。

用例基本上是用这个来维护不同的项目。例如:-您可以使用相同的docker-compose.yml来拥有两个不同的项目。

在你提到的命令中

代码语言:javascript
复制
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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62114797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档