docker未经授权:需要身份validation – 成功login后推送
从我的主机推入泊坞窗图像(成功login后),我得到“未经授权:authentication要求”。
下面的细节。
-bash-4.2# docker login --username=asamba --email=anand.sambamoorthy@gmail.com WARNING: login credentials saved in /root/.docker/config.json *Login Succeeded* -bash-4.2# -bash-4.2# docker push asamba/docker-whale Do you really want to push to public registry? [y/n]: y The push refers to a repository [docker.io/asamba/docker-whale] (len: 0) faa2fa357a0e: Preparing unauthorized: authentication required
- Docker版本:1.9.1(客户端和服务器端)
- http://hub.docker.com也创build了回购(asamba / docker-whale)。
/ var / log / messages显示403,我不知道这个docker。 见下文。
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884872524Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}" Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884988574Z" level=error msg="Handler for POST /v1.21http://img.dovov.comasamba/docker-whale/push returned error: Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.885013241Z" level=error msg="HTTP Error" err="Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" statusCode=403 Apr 16 11:39:05 localhost journal: time="2016-04-16T11:39:05.420188969Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}" Apr 16 11:39:06 localhost kernel: XFS (dm-4): Mounting V4 Filesystem Apr 16 11:39:06 localhost kernel: XFS (dm-4): Ending clean mount Apr 16 11:39:07 localhost kernel: XFS (dm-4): Unmounting Filesystem
任何帮助表示赞赏,请让我知道如果您需要进一步的信息。 我也用-f做了推。 没有运气!
我也有同样的问题。这就是我解决它的方法。
步骤1:login到Docker集线器
docker login --username=<user username> --email=<user email address>
第二步:在docker集线器中创build一个仓库。 让我们说“ mysqlserver:sql ”。
docker push <user username>/mysqlserver:sql
编辑(13/08/2017)
基于@ KaraPirinc的评论,在docker版本17中,为了login(步骤1),
docker login -u username -p password
您发布的解决scheme不适合我…
这对我有用:
-
使用所需的名称创build存储库。
-
提交图像时,将图像命名为存储库,包括用户名
<dockerusername>/desired-name
。 例如,radu/desired-name
。
好! 没关系; 我find了解决scheme。 与403怀疑HTTP不是正确的URL。
将默认生成的具有login凭证的文件更改为~/.docker/config.json
{ "auths": { "docker.io": { "auth": "XXXXXXXXXXXXX", "email": "xy@gmail.com" } } }
要注意从docker.io – > index.docker.io/v1的变化。 这是变化。
{ "auths": { "https://index.docker.io/v1/": { "auth": "XXXXXXXXXXXXX", "email": "xy@gmail.com" } } }
希望有所帮助。
请注意,auth字段应该是'用户名:密码'base64编码。例如:“用户名:密码”base64编码是“dXNlcm5hbWU6cGFzc3dvcmQ =”
所以你的文件将包含:
"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
我遇到了一个类似的问题,类似的无益的错误消息,但事实certificate,因为我试图推动一个图像,我已经build立了一个docker机pipe理的实例。
当我login到实例本身, docker login
和docker push
一切工作正常。
我有同样的问题,但我用指定的url推送固定它。 如:dockerlogin-u https://index.docker.io/v1/
控制台输出:
The push refers to a repository [docker.io/<username>/richcity] adc9144127c1: Preparing 4db5654f7a64: Preparing ce71ae73bc60: Preparing e8e980243ee4: Preparing d773e991f7d2: Preparing bae23f4bbe95: Waiting 5f70bf18a086: Waiting 3d3e4e34386e: Waiting e72d5d9d5d30: Waiting 8d1d75696199: Waiting bdf5b19f60a4: Waiting c8bd8922fbb7: Waiting unauthorized: authentication required 1010deiMac:dockerspace whoami$ docker login -u <username> https://index.docker.io/v1/ Password: Login Succeeded 1010deiMac:dockerspace whoami$ docker push <username>/richcity The push refers to a repository [docker.io/<username>/richcity] adc9144127c1: Pushed 4db5654f7a64: Pushed ce71ae73bc60: Pushed e8e980243ee4: Pushed d773e991f7d2: Pushed bae23f4bbe95: Pushed 5f70bf18a086: Pushed 3d3e4e34386e: Pushing [=============> ] 45.07 MB/165.4 MB e72d5d9d5d30: Pushed 8d1d75696199: Pushing [> ] 1.641 MB/118.1 MB bdf5b19f60a4: Pushing [============> ] 142 MB/568.4 MB c8bd8922fbb7: Pushing [========================> ] 59.44 MB/121.8 MB
即使我login和检查所有的configuration,它仍然无法正常工作!
事实certificate,当我build立我的docker时,我忘记把我的用户名之前的回购名称
docker build docker-meteor-build
(成功build立)
然后当我推到我的存储库,我用
docker push myname/docker-meteor-build
它会显示unauthorized authentication required
所以,解决scheme是build立的名称和推动应该是完全一样的
docker build myname/docker-meteor-build docker push myname/docker-meteor-build
虽然标准的过程是login,然后推入dockerregistry,诡计克服这个特定的问题是通过提供用户名和密码在同一行login。
所以:
docker login -u xxx -p yyy sampledockerregistry.com/myapp docker push sampledockerregistry.com/myapp
作品
而
docker login sampledockerregistry.com username : xxx password : yyy Login Succeeded docker push sampledockerregistry.com/myapp
失败
如果您是第一次推送新的私人图片,请确保您的订阅支持这个额外的图片。
Docker允许你有6个私人图像命名,即使你只支付5,但不推动第6个图像。 缺乏信息的消息令人困惑和恼火。
什么对我来说是创build一个新的存储库,并重新命名图像
$ docker tag image_id myname/server:latest
这里我的案例解决scheme(私人回购,免费账户计划)
要推送的图像构build名称必须具有相同的回购站名称。
例如:docker hub上的仓库是:accountName / resposName imagebuild立名称“accountName / resposName” – > docker build -t accountName / resposName
然后inputdocker push accountName / resposName:latest
就这样。
新手面临的问题是,我们倾向于像对待maven仓库一样对待docker hub仓库,并认为它可能包含许多不同的文件,文件夹和其他内容。
另一方面,Docker仓库只是一个图像,它不包含任何其他内容。 它可以保存相同图像的不同版本,但只包含一个图像。
因此,在Docker Hub上将您的存储库命名为要推入其中的映像,并使用您的dockerhub用户名作为前缀。 例如,如果您的用户名是myusername,而您的图片名称是docker -whale ,请确保将dockerhub存储库命名为docker -whale,并使用以下命令标记图像并将其推送到存储库:
docker logout # to make sure you're logged out and not cause any clashes docker tag <imageId> myusername/docker-whale # use :1.0.0 for specific version, default is 'latest' docker login --username=myusername # use the username/pwd to login to docker hub docker push myusername/docker-whale # use :1.0.0 for pushing specific version, default is 'latest'
确保您的docker仓库名称与您的本地docker仓库名称相匹配。 例如可以说,如果你当地的回购名称“kavashgar / nodjsapp”
那么你也应该在docker中心有一个回购的名字“kavashgar”
确保你有更多的私人图像插槽。
在我的情况下,我把用户转换成了一个组织,它失去了一个免费的私人图像,所以以前的推送工作,不再工作。
在你的configuration文件〜/ .docker / config.json中添加
{ "auths": { "https://index.docker.io/v1/": { "auth": "XXXXXXXXXXXXX", "email": "my_email@gmail.com" } } }
其中XXXXX是您的用户名的 base64编码: https ://hub.docker.com的密码 (包括:)
在我的情况下,我有一个拉相同的错误。 问题(在Windows下)是由双docker运行过程引起的,所以杀了他们,重新启动一个服务,它的工作。
已经有了很好的答案,但我想提一个 – 在推送之前,您不需要预先创build存储库。
我的问题是,我没有设置我login的帐户正确的用户名。 但是,一旦正确的用户名被设置在图像之前(例如YOURNAME/YOURIMAGE
)通过它的标签,你可以推动它,而无需提前创build一个新的存储库。
sudo docker tag IMAGE:VERSION USERNAME/IMAGE:VERSION sudo docker push USERNAME/IMAGE:VERSION
这里同样的问题,在推送图像:
unauthorized: authentication required
我做了什么:
docker login --username=yourhubusername --email=youremail@company.com
它打印的是:
– 电子邮件已弃用(但login仍然成功)
解决scheme:使用最新的login语法。
docker login
它将交互地询问用户名和密码 。 然后,图像推送工作。
即使在使用新的语法之后,我的~/.docker/config.json
在login后看起来像这样:
{ "auths": { "https://index.docker.io/v1/": {} }, "credsStore": "osxkeychain" }
所以证书是在macOS的keychain。
不要用纯文本输出密码。
你可以用以下方式login
docker login --username=<username>
它应该提示你input密码(更安全)。
谢谢!
我已经收到类似的错误为sudodocker推/ sudodocker拉ecr存储库。这是因为aws cli安装在我的用户(ABC)和docker安装在根用户。我试图运行sudo泊坞窗推我的用户(abc)
修正了这个问题,把aws cli安装在根目录下,使用aws configure在root下configurationaws,运行sudo docker push到ecr root用户