有没有办法获得当前用户的Docker Hub用户名?

我看到~/.dockercfg有你的login凭据,但是它是你的电子邮件而不是你的用户名。 我看到正在运行的docker login显示您的用户名并提示您更改它。 但是,你可以把你的用户名input到一个构build脚本中?

显示用户名:

 docker info | sed '/Username:/!d;s/.* //' 

将其存储在以下variables中:

 username=$(docker info | sed '/Username:/!d;s/.* //'); echo $username 

请注意,如果你有bash 历史扩展 ( set +H ),你将不能在命令replace (例如"$(cmd...)"双引号,因为!会被你的最后一个命令replace掉。这些嵌套的扩展,并使用它如上所示无引号更具可读性和工作。

这工作提取它,但技术上这是一个竞争条件。

 username="$(sed 's/.*(//;s/).*//' <(docker login & sleep 1; kill %1))" 

当然有更好的东西。