> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/zh/learn/advanced-features/edgegap-container-registry.md).

# 容器镜像仓库

将你的游戏服务器容器镜像存储在 Edgegap 免费内置仓库中，可随时部署到全球边缘网络。

现在您已经了解如何使用我们的平台，接下来需要将您的游戏服务器容器化。您需要一个用于存储容器镜像的位置，以便在部署游戏服务器时能够访问这些镜像。

这正是我们创建 Edgegap 容器镜像仓库的原因。它是一个私有管理的容器仓库，其工作方式与标准公共容器镜像仓库十分相似，但具有更高的安全性、漏洞扫描及其他优势！凭借高可用性和仪表板集成，您将花更少的时间学习新工具，并且您的服务器始终可以随时就绪。

### 获取您的凭据

要推送镜像，您首先需要向我们的镜像仓库进行身份验证，为此您需要凭据。请找到 `容器镜像仓库` 选项卡，位于 `服务` 部分的侧边栏中，以请求您的凭据。您可以从那里请求访问我们的镜像仓库。

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-323308a355e5937e7bcd4dfdbf75cd0d4517ac86%2Frequest-access.png?alt=media" alt=""><figcaption></figcaption></figure>

在屏幕底部的框中，您将找到连接到镜像仓库并推送容器镜像所需的一切信息。

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-ed6f68d538b2ea4944d14989c82351b09dc3914c%2Fregistry-project-info.png?alt=media" alt=""><figcaption></figcaption></figure>

| 字段  | 说明                           |
| --- | ---------------------------- |
| URL | 我们容器镜像仓库的 URL。登录和推送镜像时需要使用它。 |
| 项目  | 分配给您的项目名称。您必须将其包含在镜像仓库路径中。   |
| 用户名 | 登录镜像仓库时使用的用户名。               |
| 令牌  | 登录镜像仓库时使用的密码。                |

现在您可以使用您选择的工具登录仓库：

#### Linux

```bash
# 在提示时输入您的密码
docker login -u '<REPOSITORY_USERNAME>' registry.edgegap.com
```

#### cmd

```bash
# 在提示时输入您的密码
docker login -u <REPOSITORY_USERNAME> registry.edgegap.com
```

#### PowerShell

```bash
# 在提示时输入您的密码
docker login -u '<REPOSITORY_USERNAME>' registry.edgegap.com
```

### Docker 登录警告

```
警告！您的密码将以未加密的形式存储在 /home/user/.docker/config.json 中。
```

您可以按照 [此设置说明](https://docs.docker.com/engine/reference/commandline/login/#credentials-store)进行凭据存储配置。请记住，此警告是 Docker 的正常行为。

务必 **注意** 您的机器人用户名以及私有仓库令牌会以 Base64 编码的形式存储在您机器上的以下路径中 `$HOME/.docker/config.json`。任何有权访问此文件的人都可以使用 Base64 解码器轻松解密您的机器人账户令牌。请确保您使用的环境 `docker login registry.edgegap.com` 是安全的，并且对此文件的访问权限受到限制。

要从此文件中删除您的凭据，您可以轻松使用 `docker logout registry.edgegap.com` 每次推送和拉取私有镜像时。

### 将镜像推送到镜像仓库

如果您需要有关将项目容器化的帮助，请参阅 [我们关于此主题的文档](/zh/docs/tools-and-integrations/docker.md) 以便开始。

首先，您需要为镜像添加与镜像仓库对应的标签。然后，由于您已登录镜像仓库，只需将镜像推送到页面上显示的 URL 和项目即可：

```bash
docker image tag <IMAGE_NAME>:<TAG> registry.edgegap.com/<PROJECT_NAME>/<IMAGE_NAME>:<TAG>
docker push registry.edgegap.com/<PROJECT_NAME>/<IMAGE_NAME>:<TAG>
```

您可以在存储空间允许的范围内推送任意数量的镜像，并可按需将它们分置于不同的仓库中。不过，在推送过多镜像之前，您应该阅读“应用模板”部分！

刷新后，您将在同一页面上看到您的仓库。

### 为同一构建产物添加多个标签（推送重复镜像）

如果您恰好两次推送了同一构建产物，且标签值相同，则不会发生任何更改。

如果您恰好两次推送了同一构建产物，但使用两个不同的标签值，则不会占用额外的存储空间；我们的镜像仓库只会创建一个指向同一构建产物的新标签。

### 管理您的镜像

在您至少推送一个镜像后，可前往同一页面查看您的仓库。

点击其中一个仓库后，您可以查看其包含的镜像，并按构建产物分组。如果您为同一镜像添加了两个不同的标签并将其推送到镜像仓库，它们将显示为同一构建产物。

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-0a4a754f4b880aa351d7a77ff94cad5335a59831%2Fartifact-list.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-7afcf8e2f1ef701a0b2dc7aa8d54b56529f7c6eb%2Fartifact-list-2.png?alt=media" alt=""><figcaption></figcaption></figure>

带有以下标签的镜像 `1.0.1` 和 `1.0.2` 在上图中具有相同的构建产物。而带有以下标签的镜像 `1.0.3`，则具有不同的构建产物。

{% hint style="warning" %}
如果您删除一个构建产物，其关联的标签也会被删除。确认对话框会列出此操作将删除的所有标签，以确保您不会意外删除所需资源。
{% endhint %}

### 通过 API 删除构建产物

如果仪表板 UI 对您来说太慢，或者您需要一个自动删除过时构建产物以将镜像仓库使用量保持在限制范围内的自动化持续集成管道，请考虑使用我们的容器镜像仓库 API。我们的 [容器镜像仓库 API](/zh/docs/api.md) 可列出给定应用程序（镜像）的所有标签，也可删除单个标签。由于每个镜像构建产物（构建版本）可同时关联多个标签（例如 `v1.1.0`, `dev`, `latest`等），您需要删除与特定构建产物关联的所有标签，才能释放 Edgegap 容器镜像仓库中的空间。

### 请求更多存储空间

当您对镜像仓库的访问请求获得批准后，您将获得镜像仓库中的一定存储空间。

您可以点击空间使用情况指示器旁的“请求更多存储空间”按钮来请求额外空间。

<figure><img src="https://3334189208-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-81bdfd593994140a1a5a5f915b5e1242b32ef8fb%2Frequest-more-storage.png?alt=media" alt=""><figcaption></figcaption></figure>

工作人员批准您的请求后，您将拥有更多空间来推送镜像。

### 后续步骤

通过我们的指南了解如何将您的应用程序容器化： [Docker 入门](/zh/docs/tools-and-integrations/docker.md).
