我有一个标记为me/my-image的docker映像,我在dockerhub上有一个命名为me-private的私有repo。 当我推行我自己/我的形象时,我最终总是撞上公共回购。

具体将映像推到私有repo的确切语法是什么?


当前回答

当推送到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中的帐户;点击新推出的回购,然后它的设置选项卡-并使你的回购私有。

其他回答

只需简单的三步:

Docker登录——username用户名 如果你省略了——password,提示输入密码,这是推荐的,因为它不会存储在你的命令历史中 Docker标签my-image用户名/my-repo Docker推送用户名/my-repo

在dockerhub上创建存储库:

$docker tag IMAGE_ID用户名ondockerhub /repoNameOnDockerhub:最新

$docker push UsernameOnDockerhub/repoNameOnDockerhub:最新

注:此处 "repoNameOnDockerhub":您所提到的名称的存储库已经存在 呈现在dockerhub上

"latest":只是标签

简单的工作解决方案:

访问这里https://hub.docker.com/创建一个私有存储库,例如johnsmith/ PRIVATE -repository,这是您在构建映像时将用于映像的name / repository。

首先,docker登录 其次,我使用“docker build -t johnsmith/private-repository:01 .”(其中01是我的版本名)来创建图像,并且我使用“docker images”来确认创建的图像,例如下面这个黄色框中的图像:(对不起,我不能粘贴表格格式,但只能粘贴文本字符串)

johnsmith/private-repository(REPOSITORY) 01(TAG) c5f4a2861d6e(IMAGE ID) 2 days ago(CREATED) 305MB(SIZE)

第三,我使用docker推送johnsmith/private-repository:01(你的私人回购将在这里的例子https://hub.docker.com/r/johnsmith/private-repository/)

完成了!

首先,你需要用你的注册主机正确地标记你的图像:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

然后docker push使用相同的标签。

docker push NAME[:TAG]

例子:

docker tag 518a41981a6a myRegistry.com/myImage
docker push myRegistry.com/myImage

当推送到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中的帐户;点击新推出的回购,然后它的设置选项卡-并使你的回购私有。