当密码包含特殊字符时,Docker 机密不起作用

问题描述 投票:0回答:1

我正在尝试使用here提供的docker-compose来运行jenkins swarm代理。

问题是我正在使用管理团队提供的服务帐户对 jenkins master 进行身份验证,并且服务帐户的密码包含特殊字符 \ (反斜杠)和 / (正斜杠)。示例:

abcdefghifjd12 b/

我使用此密码创建的 docker 密钥不起作用。我尝试使用没有任何特殊字符的个人帐户,并且效果符合预期。所以我认为问题在于 docker 在创建秘密时如何解释这些特殊字符。我尝试转义反斜杠并使用单引号作为密码,但不起作用。我在下面尝试过

#use password as it is in double quotes
echo "abcdefghifjd12\ab/" | docker secret create jenkins-user -

#use backslash to escape backslash
echo "abcdefghifjd12\\ab/" | docker secret create jenkins-user -

#use single quotes
echo 'abcdefghifjd12\ab/' | docker secret create jenkins-user -

没有一个起作用。我该如何解决这个问题?

服务器:

版本:17.06.2-ee-6

API版本:1.30(最低版本1.12)

Go版本:go1.8.3

Git 提交:e75fdb8

建成时间:2017 年 11 月 27 日星期一 22:44:25

操作系统/Arch:linux/amd64

实验:假

docker jenkins docker-swarm jenkins-agent
1个回答
0
投票

使用 docker 升级版本,我可以做同样的事情。

在 SWARM 上,我在 manager-1 上创建了一个秘密:

    [manager1] (local) [email protected] ~
    $ echo "abcdefghifjd12\ab/" | docker secret create jenkins-user -
    jxykdlqklpo5ml81c4bfa9a4o


    [manager1] (local) [email protected] ~
    $ docker service create --secret jenkins-user alpine sleep 1d
    sgmrof1cwwubmhz1qqibu4aof
    overall progress: 1 out of 1 tasks
    1/1: running
    verify: Service converged
    [manager1] (local) [email protected] ~
    $ docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
    sgmrof1cwwub        wizardly_boyd       replicated          1/1                 alpine:latest
    [manager1] (local) [email protected] ~


    [manager2] (local) [email protected] ~
    docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    f4552c4718c5        alpine:latest       "sleep 1d"          2 minutes ago       Up 2 minutes                wizardly_boyd.1.4gb4nwgiqagfyn10vuvt9pb4v
    [manager2] (local) [email protected] ~
    $ docker exec -it f45 sh
    / # cd /run
    /run # cd secrets/
    /run/secrets # ls
    jenkins-user
    /run/secrets # cat jenkins-user
    abcdefghifjd12\ab/

Docker 版本信息:

    $ docker version
    Client:
     Version:      18.03.1-ce
     API version:  1.37
     Go version:   go1.9.2
     Git commit:   9ee9f40
     Built:        Thu Apr 26 07:12:25 2018
     OS/Arch:      linux/amd64
     Experimental: false
     Orchestrator: swarm

    Server:
     Engine:
      Version:      18.03.1-ce
      API version:  1.37 (minimum version 1.12)
      Go version:   go1.9.5
      Git commit:   9ee9f40
      Built:        Thu Apr 26 07:23:03 2018
      OS/Arch:      linux/amd64
      Experimental: true
    [manager1] (local) [email protected] ~
© www.soinside.com 2019 - 2024. All rights reserved.