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 次 |
| 最近记录: |