> For the complete documentation index, see [llms.txt](https://liqpod.gitbook.io/liqpod/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://liqpod.gitbook.io/liqpod/hosting/template.md).

# 템플릿 생성하기

{% hint style="info" %}
liqpod에서 템플릿은 자주 사용하는 컨테이너 환경을 저장하고 재사용할 수 있도록 하는 기능입니다.\
복잡한 실행 설정을 매번 입력할 필요 없이, 템플릿을 통해 쉽고 빠르게 컨테이너를 기동할 수 있습니다.
{% endhint %}

{% hint style="success" %}
템플릿 생성은 선택사항이며, 초심자는 사전에 생성된 **liqpod 공식 템플릿 사용을 권장**합니다.
{% endhint %}

## 템플릿 항목 설명

### 1. 이름

템플릿을 식별할 수 있는 이름입니다.\
**동일한 계정 내에서 이름은 중복될 수 없습니다.**\
나중에 템플릿 목록에서 식별 및 검색 시 사용됩니다.

* 예: `pytorch-2.2.0-cuda12`, `llama2-training`

### 2. 설명 (선택)

템플릿에 대한 간략한 설명을 입력합니다.\
템플릿의 용도나 포함된 패키지, 사용 환경 등을 자유롭게 기술할 수 있습니다.

* 예: `Llama2 모델 학습용 템플릿 (HF Transformers + bitsandbytes 포함)`

### 3. 카테고리

템플릿을 분류하기 위한 항목입니다.

### 4. 비공개 설정

* **공개 설정 시**: 다른 사용자도 검색 및 사용이 가능합니다.
* **비공개 설정 시**: 해당 템플릿은 오직 본인만 사용할 수 있습니다.

### 5. 이미지 URL

컨테이너를 실행할 때 사용할 **Docker 이미지의 주소**입니다.\
공식 저장소 또는 사용자가 직접 만든 이미지를 입력할 수 있습니다.

* 예시 (공개 이미지):
  * `pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime`
  * `tensorflow/tensorflow:2.14.0-gpu`
  * `ghcr.io/사용자명/이미지명:태그`

#### ✅ 이미지 URL 확인 방법

**Docker Hub:**

1. hub.docker.com 에서 원하는 이미지를 검색
2. 예: `pytorch/pytorch` → 태그 선택 → `docker pull pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime`
3. 이때 `pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime` 부분이 이미지 URL입니다.

**GitHub Container Registry (GHCR):**

1. GitHub에서 저장소 내 `Packages` 탭 이동
2. 원하는 컨테이너 이미지 클릭 → `docker pull ghcr.io/<owner>/<image>:<tag>` 형태로 제공됨
3. 도메인을 포함한 `ghcr.io/<owner>/<image>:<tag>` 부분이 이미지 URL입니다.

**기타 저장소**

도메인을 포함한 URL을 입력해주세요.

***

### 6. 비공개 저장소 여부

해당 Docker 이미지가 Private 저장소에 있을 경우 체크합니다.\
liqpod는 템플릿을 등록한 사용자의 저장소 인증 토큰(GitHub Token, Docker Hub Token 등)을 통해 이미지를 불러오기 때문에, **비공개 저장소 이미지를 사용하는 경우 반드시 비공개 템플릿으로 설정해야 합니다.**

Docker Hub, Github Container Registry를 포함한 표준 V2 API 지원 레지스트리를 지원합니다.

{% hint style="info" %}
비공개 이미지를 사용하기 위해선 [계정 설정 - 계정](https://liqpod.cloud/dashboard/settings/account)에서 해당 레지스트리를 인증하기 위한 토큰이 사전에 등록되어 있어야 합니다.
{% endhint %}

***

### 7. 시작 커맨드 (선택)

컨테이너 실행 시 자동으로 실행할 커맨드를 입력하는 항목입니다.\
학습 스크립트, 서버 실행 등 원하는 명령어를 자유롭게 입력할 수 있습니다.

* 예:
  * `python train.py`
  * `uvicorn main:app --host 0.0.0.0 --port 7860`

※ 해당 명령어는 컨테이너의 **Entrypoint 또는 CMD**를 덮어씁니다. 사전에 이미지에 설정된 Entrypoint 또는 CMD가 무시될 수 있습니다.

***

### 8. 환경변수 (선택)

최대 10개의 Key-Value 쌍을 등록할 수 있으며, 컨테이너 실행 시 환경에 주입됩니다.

* 예:
  * `MODEL_NAME = llama-2-13b`
  * `HF_TOKEN = [your_token_here]`

※ 민감한 정보는 가능한 템플릿에 직접 입력하기보다는 컨테이너 실행 시 수정하여 입력하는 것을 권장합니다. 템플릿에는 placeholder로 작성해주세요.

***

### 9. 포트 설정 (선택)

컨테이너 내부에서 사용하는 포트를 지정합니다.\
입력한 내부 포트는 **외부 접근이 가능하도록 자동 바인딩**되며, 외부 포트는 시스템에서 자동 배정됩니다.

* 예:
  * 입력: `7860` → 결과: `https://t001.liqpod.cloud:49123` (외부 접속용 URL 자동 생성)
* 여러 포트 입력 가능 (최대 5개)
* SSH 혹은 WEB 포트로 타입을 지정하시면 컨테이너 생성 시 엔드포인트(접속정보)란에 표시됩니다.

***

## 작성 예시

다음은 Docker Hub의 `wellmadecomputer/ssh-cuda:ubuntu24.04-cuda12.9.0-runtime` 이미지를 사용하는 템플릿의 작성 예시입니다.

<figure><img src="https://1578221086-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFoI87GDcuaRRviatFnc9%2Fuploads%2FNi0Ywdpfms8kpaAJbzRD%2Fimage.png?alt=media&amp;token=6ba4d365-0e6e-4027-96f8-a2dfa01e5bfa" alt=""><figcaption></figcaption></figure>
