我可以单独启动或停止引用特定 "docker-compose.yml" 的资源吗?

Can I up or stop resources referring to a specific "docker-compose.yml" individually?

我是容器领域的新手,尤其是 Docker Compose。我对某些概念感到困惑,找不到有关它们的信息。

基本上我想知道我是否可以单独处理不同“docker-compose.yml”文件中的设置。我解释得更好...我想知道 我是否可以单独启动或停止引用特定“docker-compose.yml”的资源.


加上:

为了更好地解释我的疑问,我将向您展示一些关于我要解释的内容的猜想。

在我看来,Docker Compose 可以使用不同的“.yml”文件进行多种配置,如下例所示...

例子

docker-compose -f docker-compose.a.yml -f docker-compose.b.yml up -d

... 而且我还可以单独处理这些设置中的每一个,例如停止引用特定 docker-compose.yml[=41= 的所有资源]...

例子

docker-compose -f docker-compose.b.yml stop

[Ref(s).: https://gabrieltanner.org/blog/docker-compose#using-multiple-docker-compose-files , https: //whosebug.com/q/29835905/3223785 , , https://runnable.com/docker/advanced-docker-compose-configuration ]

是的,这是可能的。我不确定您要做什么,但是为了能够按照您描述的方式使用 -f 选项管理服务,多个文件上不应有同名服务。 例如,如果您在 docker-compose.a.yml 中有一项名为 db 的服务,在 docker-compose.b.yml 中有一项名为 db 的服务。以下命令只会为 db 服务构建一个容器:

docker-compose -f docker-compose.a.yml -f docker-compose.b.yml up -d

看看-p option。它将创建一个项目,其中的服务是隔离的。然后你可以使用相同的 docker-compose.yml 文件使用以下命令来管理它们:

docker-compose -p foo up -d
docker-compose -p foo stop [service_name]

是的,你可以。

这只是一个偏好问题,但我通常为我拥有的每个项目创建一个文件夹,每个项目都有一个独特的 docker-compose.yml 文件及其所有依赖项(前端/数据库/redis)

然后为了开始一个特定的项目,我只是进入它的文件夹并运行 docker-撰写。然后它只启动这个项目而不接触其他人。

如果只想启动redis也可以这样输入

docker-compose up redis

所有 docker-compose 子命令(向上、停止、向下...)必须消耗 docker-编写<.SOME_OPT_VAL>.yml文件.

这个 docker-compose.yml 文件必须在 docker-compose 命令被执行或必须通过 -f 标志通知。这样,这些子命令将在 docker-compose.yml 文件中定义的“服务”(资源)上执行。

还有可能定义将执行某个子命令的服务...

型号

docker-compose <SUBCOMAMND> <OPT_SERVICE_NAME>
docker-compose -f <DOCKER_COMPOSE_YML> <SUBCOMAMND> <OPT_SERVICE_NAME>

例子

docker-compose stop api
docker-compose -f docker-compose.yml stop api