我有一个标记为me/my-image的docker映像,我在dockerhub上有一个命名为me-private的私有repo。 当我推行我自己/我的形象时,我最终总是撞上公共回购。
具体将映像推到私有repo的确切语法是什么?
我有一个标记为me/my-image的docker映像,我在dockerhub上有一个命名为me-private的私有repo。 当我推行我自己/我的形象时,我最终总是撞上公共回购。
具体将映像推到私有repo的确切语法是什么?
当前回答
在本地拉一个图像后,你可以做下面的事情:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
然后docker push使用相同的标签。
docker push NAME[:TAG]
例子:
docker tag gvenzl/oracle-xe:21-slim quay.io/repository/yourDirectory/oracle_xe:oracle-xe
docker push quay.io/repository/yourDirectory/oracle_xe:oracle-xe
其他回答
在本地拉一个图像后,你可以做下面的事情:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
然后docker push使用相同的标签。
docker push NAME[:TAG]
例子:
docker tag gvenzl/oracle-xe:21-slim quay.io/repository/yourDirectory/oracle_xe:oracle-xe
docker push quay.io/repository/yourDirectory/oracle_xe:oracle-xe
dockerhub中还有一个“默认隐私”设置。访问https://hub.docker.com/settings/default-privacy或点击帐户设置->默认隐私。
将切换设置为“private”。
这不是一个完整的解决方案,但至少默认的私有比默认的公共要好。你可以返回并公开你想要的。
在dockerhub上创建存储库:
$docker tag IMAGE_ID用户名ondockerhub /repoNameOnDockerhub:最新
$docker push UsernameOnDockerhub/repoNameOnDockerhub:最新
注:此处 "repoNameOnDockerhub":您所提到的名称的存储库已经存在 呈现在dockerhub上
"latest":只是标签
以下是将Docker Image推送到DockerHub的私有存储库的步骤
1-首先使用命令检查Docker图像
码头工人的图片
2-查看Docker Tag命令帮助
Docker标签——救命
3-现在标记一个名称,以您创建的图像
DockerHubUser\Private-repoName:tagName(标签名可选。默认名称为最新)
4-在推送镜像到DockerHub Private Repo之前,请先使用命令登录DockerHub
docker login[提供dockerHub用户名和密码登录]
5-现在推Docker映像到您的私人回购使用命令
docker push [options] ImgName[:tag]例如docker push DockerHubUser\Private-repoName:tagName
6-现在导航到DockerHub Private Repo,你会看到Docker映像被推送到你的私有存储库上,在前面的步骤中名称写为TagName
当推送到Docker Hub帐户时,无论是公共帐户还是私有帐户,过程都是相同的。
警察说:
我有一个标记为me/my-image的docker映像,我在dockerhub上有一个命名为me-private的私有repo。 当我推行我自己/我的形象时,我最终总是撞上公共回购。
直接的问题是私有回购(me-private)似乎与映像(my-image)具有不同的名称。repo和映像必须具有相同的名称(减去任何标记)。
TLDR; 一个名为my-image或my-image:标签的图像必须有一个my-image的回收名。
因为行动中心的回购被命名为我私人的, Docker Hub不会将它们视为相同的,并将创建名为my-image的新回购。
(默认情况下,新的回购将是公开的,除非您更改设置使所有存储库都是私有的。)
截至2022年6月,建立Docker Hub回购的流程是:
给定以下值:
用户名= yourusername 图像名称=图像 标签=标签
1)标记(或提交)本地图像,添加一个前缀与您的用户名:
docker tag theimage:thetag yourusername/theimage:thetag
注:
如果你在一个组织中,你需要双前缀的图像-像这样:
docker tag theimage:thetag yourusername/yourorganizationname/theimage:thetag
如果你的标签是最新的,:标签部分可以省略;Docker假设:latest如果你没有输入:thetag部分
2)将前缀图像推送到Docker Hub:
docker push yourusername/theimage:thetag
OR
docker push yourusername/yourorganizationname/theimage:thetag
对于私人回购,这些额外步骤之一是必要的:
要么
在上述第1步之前,在Docker Hub帐户中创建一个私有存储库
请记住,存储库名称必须与您计划推送的映像相同。不要在存储库名称中包含thetag部分。例如,如果你的映像是ubuntu:14.04,你可以将你的存储库命名为ubuntu。(所有带标签的图片,如ubuntu:latest, ubuntu:14.04等,都将进入ubuntu repo。)
Or
如果你没有提前创建存储库(这不是必需的!):转到Docker Hub中的帐户;点击新推出的回购,然后它的设置选项卡-并使你的回购私有。