Docker CLI docker stack config 常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker stack config 常用命令。

1、docker stack config 简介

docker stack config 命令是用于在 Docker 栈中管理配置。它允许您创建、列出、删除和导出配置,并将配置与服务关联。

该命令与Swarm编排器一起工作。

在对输入的合成文件进行合并和插值之后,输出最终的合成文件。

注意:

此命令是一个集群管理命令,必须在 Swarm 管理节点上执行。有关管理节点和工作节点的详细信息,请参阅文档中的 Swarm 模式部分。

参考文档:https://docs.docker.com/engine/reference/commandline/stack_config/

2、docker stack config 语法

docker stack config [OPTIONS]

3、docker stack config 命令

以下命令输出两个 Compose 文件合并和插值的结果。

docker stack config --compose-file docker-compose.yml --compose-file docker-compose.prod.yml

Compose 文件也可以通过标准输入提供,使用 --compose-file -:

cat docker-compose.yml | docker stack config --compose-file -

1)跳过插值

在某些情况下,跳过环境变量的插值可能很有用。例如,当您希望将此命令的输出通过管道返回给 stack deploy 时。

如果您的 Web 服务器的重定向路由在环境变量中使用正则表达式,您可以使用两个 $ 符号来阻止 stack deploy 对 ${1} 进行插值。

service: webserver
  environment:
    REDIRECT_REGEX=http://host/redirect/$${1}

使用插值,stack config 命令将在 Compose 文件中将环境变量替换为 REDIRECT_REGEX=http://host/redirect/${1},但是当将其通过管道返回给 stack deploy 命令时,它将再次进行插值,导致未定义的行为。因此,在将输出通过管道返回给 stack deploy 时,应始终优先使用 --skip-interpolation 选项。

docker stack config --compose-file web.yml --compose-file web.prod.yml --skip-interpolation | docker stack deploy --compose-file -

4、命令选项

名称

默认值

描述

--compose-file , -c

Compose文件的路径,或者-从stdin中读取

--skip-interpolation

跳过插值,只输出合并后的配置

5、子命令

命令

描述

docker stack config

输出最终的配置文件,进行合并和插值后

docker stack deploy

部署一个新的 stack 或更新现有的 stack

docker stack ls

列出 stacks

docker stack ps

列出 stack 中的任务

docker stack rm

移除一个或多个 stacks

docker stack services

列出 stack 中的服务

推荐阅读
cjavapy编程之路首页