无法使用STDIN创建Docker机密

时间:2018-06-29 14:32:25

标签: docker

我正在尝试在Ubuntu 18.0.4 LTS上创建一个docker secret。

我使用docker swarm init创建了一个群体。

运行echo "my_secret" | docker create secret my_secret - someSecret时出现错误:

"docker secret create" requires at least 1 and at most 2 arguments.
See 'docker secret create --help'.

Usage:  docker secret create [OPTIONS] SECRET [file|-] [flags]

Create a secret from a file or STDIN as content

有人可以告诉我我在做什么错吗?

2 个答案:

答案 0 :(得分:1)

secret create命令最多包含两个参数,即秘密名称和(可选)从中读取秘密的位置。 SELECT dt, vst_type, register_dt, vst_dt FROM ( SELECT id, dt, vst_type, dt AS register_dt, ROW_NUMBER () OVER ( PARTITION BY id, dt ORDER BY CASE WHEN vst_type = 'REGISTER_DT' THEN 1 ELSE 2 END ) AS vst_dt_rnum, LEAD(dt) OVER (PARTITION BY id ORDER BY dt) AS vst_dt FROM ( SELECT id, register_dt AS dt, 'REGISTER_DT' vst_type FROM tst_tbl UNION SELECT id, visit_dt AS dt, 'VISIT_DT' vst_type FROM tst_tbl ) ) WHERE vst_dt_rnum = 1 AND vst_type = 'REGISTER_DT' 说要从stdin读取。您提供了3个无效参数,分别为-my_secret-

someSecret

这将创建一个名为echo "someSecret" | docker create secret my_secret - 的秘密,其值为my_secret

答案 1 :(得分:1)

默认情况下,echo命令在末尾添加一个额外的换行符。这也将影响您的秘密。您必须添加-n选项,该选项强制echo不输出尾随换行符。

echo -n "someSecret" | docker create secret my_secret -