# 이미지

컨테이너를 띄울 때 쓰는 Docker 이미지를 다루는 방법입니다.

---

## 이미지 유형

Cluma에서 쓸 수 있는 이미지는 세 가지입니다.

| 유형 | 어떻게 |
|------|--------|
| 사내 저장소 이미지 | 관리자가 등록해 둔 사내 이미지 저장소에서 고르기 |
| 외부 공개 이미지 | Docker Hub 같은 곳의 주소를 그대로 적기 |
| 내 이미지 (커스텀) | 본인이 직접 등록해 둔 이미지에서 고르기 |

---

## 사내 저장소에서 고르기

컨테이너 만들기 Step 2의 **기본 정보** 단계에서 **레지스트리에서 이미지 선택**을 고릅니다.

1. 등록된 저장소를 고릅니다.
2. 이미지 이름으로 찾거나 목록에서 고릅니다.
3. 태그를 고릅니다.

---

## 외부 공개 이미지 직접 입력

저장소에 등록되지 않은 외부 공개 이미지는 **직접 입력하기**에 주소를 직접 적어 씁니다.

```
# 예시
pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime
nvcr.io/nvidia/tensorflow:23.10-tf2-py3
```

클러스터에서 외부 인터넷에 나갈 수 있어야 동작합니다. 막혀 있는 환경이라면 관리자에게 사내 저장소에 미러를 요청하세요.

---

## 내 이미지 등록

직접 빌드한 이미지를 Cluma에 등록해 두면 다음에 쉽게 골라 쓸 수 있습니다.

1. 위쪽 메뉴에서 **이미지 목록**을 누릅니다.
2. **이미지 등록** 버튼을 누릅니다.
3. 아래를 적습니다.

| 항목 | 어떤 값 |
|------|---------|
| 이름 | 알아볼 수 있는 이름 |
| 이미지 주소 | 저장소 URL을 포함한 전체 경로 |
| 태그 | 이미지 태그 (예: latest, v1.0) |

등록한 이미지는 컨테이너 만들기 Step 2 → 기본 정보 → **커스텀 이미지** 에서 고를 수 있습니다.

---

## Base 이미지에 들어가야 하는 것

v1.1부터 컨테이너의 표준 접속 포트(VS Code · SSH · Jupyter)가 자동으로 열립니다. 카드 버튼이 동작하려면 그 안에서 해당 서비스가 실제로 돌고 있어야 합니다.

| 서비스 | 안쪽 포트 | 권장 도구 |
|--------|----------|----------|
| VS Code | 8443 | code-server |
| SSH | 22 | OpenSSH |
| Jupyter | 8888 | JupyterLab |

빌드 가이드는 [base image 빌드 안내](https://github.com/bricksum/cluma/blob/main/docs/container-base-image-420.md)를 참고합니다.

---

## 권장 이미지

AI / ML 작업에 자주 쓰는 base 이미지입니다. 위 세 서비스가 들어 있는 형태로 추가 빌드해서 쓰시면 가장 깔끔합니다.

| 용도 | 이미지 |
|------|--------|
| PyTorch (CUDA 11.8) | `pytorch/pytorch:2.1.0-cuda11.8-cudnn8-runtime` |
| TensorFlow (CUDA 12) | `nvcr.io/nvidia/tensorflow:23.10-tf2-py3` |
| Jupyter (CPU / 실험용) | `jupyter/scipy-notebook:latest` |
| Ubuntu + CUDA | `nvidia/cuda:12.2.0-devel-ubuntu22.04` |

!!!note 위 이미지에는 세 서비스가 모두 들어 있지 않을 수 있습니다
필요한 도구(code-server, OpenSSH, JupyterLab)를 추가한 사내 base 이미지를 빌드해 쓰시는 걸 권장합니다. Cluma 팀이 미리 만들어 둔 권장 이미지가 있다면 관리자에게 문의하세요.
!!!

---

## 다음 단계

- [컨테이너 관리](./container.md)
- [스토리지 관리](./storage.md)
