Viv*_*Dev 12 docker docker-compose
docker-compose 命令中 -p 或 --project-name 选项的用途是什么?
它的用例是什么?
我是新手,还没有开始使用 docker 网络。docker 网络中是否使用了 --project-name ?
当我在 Visual Studio 2019 中添加 docker 支持时,Visual Studio 会运行一些 docker compose 命令,如下所示。其中每个都有一个 -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
Run Code Online (Sandbox Code Playgroud)
Dav*_*aze 11
如果运行docker-compose
多次,它会使用项目名称将一个目录的容器、网络和卷与另一个目录的容器、网络和卷分开。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
如果您想要在同一目录中运行同一 Compose 堆栈的多个副本,则需要一个选项。否则,目录名称将用作默认项目名称,并且它们会相互冲突。这可能就是 Visual Studio 正在考虑的事情。
如果您查看docker ps
、docker network ls
和docker volume ls
输出,您将看到对象名称 中包含的名称project-a_db_1
。如果您使用这些命令的详细inspect
形式,您将看到一些与 Compose 相关的标签,而这些标签正是 Compose 实际查找的内容。
归档时间: |
|
查看次数: |
9926 次 |
最近记录: |