> 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/ko/learn/advanced-features/edgegap-container-registry.md).

# 컨테이너 레지스트리

게임 서버 컨테이너 이미지를 Edgegap의 무료 내장 레지스트리에 저장하고, 글로벌 엣지 네트워크 전반에 배포할 준비를 하세요.

이제 플랫폼을 사용하는 방법을 알았으니, 게임 서버를 컨테이너화해야 합니다. 게임 서버를 배포할 때 접근할 수 있도록 컨테이너 이미지를 저장할 곳이 필요합니다.

그래서 저희가 Edgegap Container Registry를 만들었습니다. 이는 표준 공개 컨테이너 레지스트리와 매우 비슷하게 작동하는 비공개 관리형 컨테이너 저장소이지만, 보안 강화, 취약점 검사 및 기타 유용한 기능이 추가로 제공됩니다! 높은 가용성과 대시보드 통합 덕분에 새로운 도구를 배우는 데 드는 시간이 줄어들고, 서버는 언제나 바로 사용할 수 있는 상태로 유지됩니다.

### 자격 증명 받기

이미지를 푸시하려면 먼저 저희 레지스트리에 인증해야 하며, 이를 위해 자격 증명이 필요합니다. 다음을 찾으세요 `컨테이너 레지스트리` 탭을 `서비스` 섹션에서 사이드바의 자격 증명을 요청하세요. 그러면 저희 레지스트리 접근을 요청할 수 있습니다.

<figure><img src="https://1562312210-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://1562312210-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` 비공개 이미지를 푸시하고 가져올 때마다.

### 이미지를 레지스트리에 푸시하기

프로젝트를 컨테이너화하는 데 도움이 필요하면 다음을 참조하세요 [이 주제에 대한 문서](/ko/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://1562312210-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://1562312210-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가 너무 느리거나, 레지스트리 사용량을 제한 내로 유지하기 위해 오래된 빌드 아티팩트를 자동으로 삭제하는 자동화된 지속적 통합 파이프라인이 필요하다면, 저희 Container Registry API 사용을 고려해 보세요. 저희의 [Container Registry API](/ko/docs/api.md) 는 지정된 앱(이미지)에 대한 모든 태그를 나열할 수 있으며, 개별 태그를 삭제할 수도 있습니다. 각 이미지 아티팩트(빌드)는 동시에 여러 태그가 연결될 수 있으므로(예: `v1.1.0`, `dev`, `latest`, 또는 그 이상), Edgegap Container Registry에서 공간을 확보하려면 특정 아티팩트와 연결된 모든 태그를 삭제해야 합니다.

### 더 많은 저장 공간 요청

레지스트리 접근 요청이 승인되면, 레지스트리에서 일정량의 저장 공간이 제공됩니다.

저장 공간 사용량 표시 옆의 "저장 공간 추가 요청" 버튼을 클릭하여 추가 공간을 요청할 수 있습니다.

<figure><img src="https://1562312210-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 시작하기](/ko/docs/tools-and-integrations/docker.md).
