如何在docker push上指定用户名和密码?

问题描述 投票:15回答:3

嗨,我正在尝试docker push

[docker-simple-httpserver]# docker push myregistry/simplehttpserver:latest
The push refers to a repository [myregistry/simplehttpserver] (len: 1)
Sending image list
FATA[0000] Error: Status 403 trying to push repository simplehttpserver: "{\"error\": \"Unauthorized updating repository images\"}" 

有没有办法让我在username命令中指定passworddocker push

docker docker-registry
3个回答
24
投票

我认为出于安全原因,他们会将密码保留在命令行之外。

这样做的方法是先登录然后再按。

https://docs.docker.com/mac/step_six/

$ docker login --username=maryatdocker [email protected]
Password:
WARNING: login credentials saved in C:\Users\sven\.docker\config.json
Login Succeeded

然后推

$ docker push maryatdocker/docker-whale
The push refers to a repository [maryatdocker/docker-whale] (len: 1)
7d9495d03763: Image already exists
c81071adeeb5: Image successfully pushed

13
投票

通常,您将使用交互式docker login指定密码,然后执行docker push

对于非交互式登录,您可以使用-u-p标志。

docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"

Travis CI docs for docker builds举了一个如何automate a docker login的例子。

有关详细信息,请参阅docker login


2
投票

据我所知,你必须使用docker login。凭证将存储在/home/user/.docker/config.json中以跟踪docker pushes。

如果您在自动化之后,命令expect将对您有意义。

© www.soinside.com 2019 - 2024. All rights reserved.