在进行docker push之前,您可能需要将docker仓库切换为私有状态。
感谢Dean Wu提供的答案和ses的这条评论,在推送之前,请记得注销,然后从命令行登录到您的Docker Hub帐户。
# you may need log out first `docker logout` ref. https://dev59.com/_lgQ5IYBdhLWcg3w7ofY#53835882
docker login
根据 文档:You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.
所以这意味着您必须在推送之前为图像进行标记:
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage
然后,你就应该能够推它了。
docker push YOUR_DOCKERHUB_NAME/firstimage
[host]/[namespace]/[repo]
组合,仍然出现相同的错误(也就是说,我的组织和我的账户都作为命名空间)。甚至尝试了 docker login ...
,但我还是无法推送 :-| - nicerobotdocker tag mylocalimage:latest darlin/dockerhub:myfirstimagepush
docker login
。在来到这个帖子之前,我不知道 docker login
。 - rm.rf.etc我在学习 Docker 初学者课程时遇到了同样的问题。通过在执行 docker push 命令前运行 docker login
命令,我成功解决了这个问题。
docker login
时遇到了“获取凭证错误”的问题。使用sudo docker login
解决了这个问题,并使我能够推送我的私有库。 - johnsampsondocker login
并使用 docker tag ubuntu franva/ubuntu
为本地镜像打标签,然后运行了 docker push franva/ubuntu
。 - Franvasudo docker push
将尝试推送到另一个用户的账户。运行 docker push
将会使用“我的” Docker Hub 账户。 - Philipp使用以下命令:
$ docker login
<enter user name and password for Docker Hub Repository>
$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image
$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image
例如,我有一个名为manjeet86/docker-repo的公共存储库,因此命令将是:
e.g.像manjeet86/docker-repo这样的公共存储库,命令将是:
(Note: The original sentence seems to be incomplete, so I provided two possible translations.)$ docker tag first-image manjeet86/docker-repo:first-image
$ docker push manjeet86/docker-repo:first-image
只需要看到:
而不是/
,这就是诀窍。 这对我有效。 我不知道是否可以使用/
代替:
来标记,但这可能是出于其他目的。
https://docs.docker.com/engine/reference/commandline/tag/#examples
:
代替斜杠 /
,谢谢。 - Kris需要注意的是,当您为图像打标签时,您需要使用命名空间和您的存储库/mydevrepo进行标记。 当我按照Docker文档进行操作时,这使我感到困惑。之后我使用了:
docker login
然后我使用'标记名称'推送了我的图像。
docker push {namespace}/mydevrepo
{namespace}/wordpress-cli-ansible
这样的事情,而不是{namespace}/wordpress-helm/wordpress-cli-ansible
。这就是我遇到的一个问题,阻止了我进行推送。 - vhs以下是一个2018年1月的解决方法:
访问 hub.docker.com
并将您的存储库更改为私有。
在shell中运行:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB
docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag
docker login docker.io
docker push dockhubusername/verse_gapminder:mytag
回到docker hub并将存储库更改回公共模式。
我也遇到了这个问题,我尝试了这里提供的解决方案,但都没有奏效。至少根据docker login
输出的结果,我已经成功登录了,但仍然无法推送映像。最终起作用的是:
docker logout
然后再次执行docker login
,就是这么简单。我不确定发生了什么,但强制重新登录是有效的。
当我给镜像打标签时,使用我的Docker Hub名称可以正常工作。(在这里,xyz是一个Docker Hub名称)
# Login to docker hub account
docker login
# tag image
docker tag nginx xyz/nginx
# push image
docker push xyz/nginx
xyz
必须是您在 Docker Hub 上的用户名吗? - Danijel我曾经遇到过同样的问题,当我将我的镜像命名为something/image-name
时,它无法正常工作。但是,当我改成了<docker-hub-username>/image-name
时,它就奇妙地工作了。
步骤 1
docker login --username=jp9573
步骤 2
docker push jp9573/todo
以前,我使用了jaypatel/todo
这种方式命名我的镜像,但我只需将其更改为username/image
的模式即可。这样,我不必给镜像打标签或做其他的操作。我认为这对于新手来说是个好方法。
今天我遇到了同样的问题。唯一有效的方法是明确登录到 "docker.io":
docker login docker.io
我尝试了各种其他名称,登录似乎有效,但后来会导致以下错误。
请求的资源访问被拒绝
docker login
但没有成功,但在结尾加上明确的 docker.io
就起作用了。 - jooks
sudo
- Sisir