bash脚本中自动泊坞窗登录

问题描述 投票:22回答:4

我如何我里面预置凭证在脚本中docker login命令?

我使用的是bash脚本,基本上自动设置我的自定义虚拟机等的全过程,但是当我需要登录脚本中泊坞窗拉图像,我得到以下错误:

用户名:FATA [0000]不适当的ioctl用于设备

我使用的命令如下:

( echo "xxx"; echo "yyy"; echo "zzz" ) | docker login docker.somesite.org

这是可能实现,而无需使用和应对在现有.dockercfg文件,以及如何, 非常感谢。

linux bash unix docker
4个回答
41
投票

泊坞窗18及以后

现在有一个officially-documented方式做到这一点:

cat ~/my_password.txt | docker login --username foo --password-stdin

多克1.11至泊坞17

你可以通过在命令行中的所有参数:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST

如果不指定DOCKER_HOST,你会得到的主要泊坞回购。如果你离开了任何的参数,系统会提示您对这样的说法。

年龄大于1.11

相同的路径正上方,但你也需要传递一个--email标志。这样做的内容实际上并没有检查,所以,只要是好的:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email [email protected]

7
投票

非交互式运行的泊坞窗login命令,你可以设置--password-标准输入标志通过STDIN提供密码。使用STDIN防止密码在shell的历史结束了,或日志文件。

$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_HOST

3
投票

当您登录到您的私人注册表,码头工人自动创建文件$ HOME / .docker / config.json文件有凭据的信息,所以你可以保存文件,当你想登录注册表复制到任何主机。

文件内容是这样的:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

附加如果你想登录多泊坞窗注册表一台服务器上,只需添加另一台auth info.like这样的:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    },
                    "example1.com":{
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

现在,您可以推拉从example.com和example1.com图像。


0
投票

对于通过任何随机过路人可能跌入这个寻找一种方式来使用这个针对Openshift环境的容器注册表(码头工人),您可以使用以下方法来提供对注册表的URI与证书一起使用Openshift令牌登录进去。

$ echo "$(oc whoami -t)" | docker login -u $USER --password-stdin \
    $(oc get route docker-registry -n default --no-headers | awk '{print $2}')
Login Succeeded

以上做3件事情:

  • 通过令牌从Openshift oc whoami -t检索
  • 确定Openshift的注册表URI $(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
  • 登录到注册表使用$USER +令牌从上方
© www.soinside.com 2019 - 2024. All rights reserved.