【问题标题】:How to push a docker image that has a tag different from docker hub repository?如何推送标签与 docker hub 存储库不同的 docker 镜像?
【发布时间】:2021-09-02 23:15:53
【问题描述】:

假设我在 docker hub 上有一个帐户,我的用户名是 hub_user

我在上面创建了一个名为 react-dev 的存储库。

现在在我的机器上,我创建了一个标记为 company/react/dev 的图像。

我可以用docker image ls看到它:

REPOSITORY                        TAG           IMAGE ID       CREATED         SIZE
company/react/dev                  latest        f344922a299e   7 minutes ago   368MB

现在我被困在将这张图片推送到该中心存储库中。

此命令不起作用:

docker push company/react/dev

使用默认标签:latest 推送是指存储库 [docker.io/company/react/dev]
f63cd7f19f75:准备中
e8aee5ec6588:准备中
48ee8f528027:准备
f3abd083ca1f:准备中
d02e39b7f91a:准备中
0586d9cce1ac:等待
48286fbe1b87:等待
f22adfb1c0f3:等待
9a5d14f9f550:等待
denied:请求的资源访问被拒绝

我该怎么办?

【问题讨论】:

    标签: docker


    【解决方案1】:

    推送时必须使用hub_user/react-dev

    对于您的场景,您可以使用 docker tag 创建一个引用 SOURCE_IMAGE 的标签 TARGET_IMAGE,请参阅 this

    然后,类似下一个的东西可以工作:

    $ docker tag company/react/dev hub_user/react-dev
    $ docker push hub_user/react-dev
    

    【讨论】:

    • 你的意思是镜像的名字和仓库的名字应该一样?
    • 是的,至少,我通常是这样做的,如果可行,你可以试试。
    • 这是 docker 团队的一个非常愚蠢的设计。是的,它奏效了。但它破坏了我们的命名、结构和设计。谢谢。
    【解决方案2】:

    在推送到 dockerhub 时,标签和推送应该遵循这样的约定。

    dockerhub_username/repo_name:$TAG
    

    所以在构建/标记图像时应该是这样的

    docker build -t hub_user/react-dev:latest
    

    然后推送同一张图片

    docker push hub_user/react-dev:latest
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多