我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

将仓库连接到容器映像

您可以在本地以及 GitHub 上链接仓库与容器映像。

GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 2.22 和 GitHub One。


GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 更多信息请参阅“[GitHub 的产品](/articles/github-s-products)”。

本文内容

在链接容器映像与仓库时,软件包登录页面将显示来自仓库的信息和链接,例如 README。

要在 GitHub 上连接仓库和容器映像,它们必须在 GitHub 上共用同一个所有者。 例如,my_repohello_docker 都归用户 monalisa 所有:

https://github.com/monalisa/my_repo
https://github.com/monalisa/hello_docker

将仓库连接到 GitHub 上用户拥有的容器映像

  1. 在 GitHub 上,导航到用户帐户的主页面。

  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)

    个人资料照片

  3. 在个人资料页面的右上角,单击 Packages(包)

    个人资料页上的包选项

  4. 搜索并选择您的包。

  5. 在容器映像登录页的右上角,单击 Package settings(包设置)

    包设置按钮

  6. 在包版本下,单击 Connect repository(连接仓库)

    包登录页上的连接仓库按钮

  7. 选择一个仓库,然后单击 Connect repository(连接仓库)

    仓库选择弹出窗口中的连接仓库按钮

将仓库连接到 GitHub 上组织拥有的容器映像

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)

    容器访问邀请按钮

  3. 搜索并选择您的包。

  4. 在容器映像登录页的右上角,单击 Package settings(包设置)

    包设置按钮

  5. 在包版本下,单击 Connect repository(连接仓库)

    包登录页上的连接仓库按钮

  6. 选择一个仓库,然后单击 Connect repository(连接仓库)

    仓库选择弹出窗口中的连接仓库按钮

将仓库连接到命令行上的容器映像

  1. 在 Dockerfile 中添加此行,将 OWNERREPO 替换为您的详细信息:

    LABEL org.opencontainers.image.source https://github.com/OWNER/REPO

    例如,如果您是用户 monalisa 并且拥有 my-repo,您会将此行添加到 Dockerfile:

    LABEL org.opencontainers.image.source https://github.com/monalisa/my-repo

    更多信息请参阅官方 Docker 文档中的“LABEL”,以及 opencontainers/image-spec 仓库中的“预定义的标注键”。

  2. 构建容器映像。 此示例从当前目录的 Dockerfile 构建映像,并分配映像名称 hello_docker

    $ docker build -t hello_docker .
  3. (可选)查看您想要标记的 Docker 映像的详细信息。

    $ docker images
    > REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
    > ghcr.io/my-org/hello_docker         latest              38f737a91f39        47 hours ago        91.7MB
    > ghcr.io/my-username/hello_docker    latest              38f737a91f39        47 hours ago        91.7MB
    > hello-world                                           latest              fce289e99eb9        16 months ago       1.84kB
  4. 使用所需的映像名称和托管目标标记 Docker 映像。

    $ docker tag IMAGE_NAME ghcr.io/OWNER/NEW_IMAGE_NAME:TAG

    例如:

    $ docker tag 38f737a91f39 ghcr.io/monalisa/hello_docker:latest
  5. 如果尚未进行身份验证,请

GitHub Container Registry. 更多信息请参阅“向 GitHub Container Registry 验证”。

<pre><code class="hljs language-shell">$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
> Login Succeeded</code></pre>
  1. 推送容器映像到 GitHub Container Registry。
    $ docker push ghcr.io/OWNER/IMAGE-NAME:TAG
    例如:
    $ docker push ghcr.io/monalisa/hello_docker:latest

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。