Docker 관리
Docker 소켓을 통해 호스트의 컨테이너, Compose 프로젝트, 이미지, 네트워크, 볼륨을 관리합니다. 진입점은 사이드바 「Docker」이며 페이지는 「컨테이너」「Compose」「이미지」「네트워크」「볼륨」「시스템」 여섯 탭으로 나뉩니다. Docker에 연결할 수 없으면 페이지 상단에 오류 상세와 설정을 여는 바로 가기 버튼이 표시됩니다.
활성화 방법
Gately를 컨테이너에서 실행할 때는 호스트의 Docker 소켓을 마운트합니다.
-v /var/run/docker.sock:/var/run/docker.sockDocker 주소의 기본값은 unix:///var/run/docker.sock이며 「시스템」 탭의 설정에서 바꿀 수 있습니다.
보안 안내
docker.sock을 마운트하는 것은 호스트에 root 수준 권한을 주는 것과 같습니다. Docker 관리가 필요 없다면 이 마운트를 제거하고 관리 UI(2단계 인증, 보안 진입 경로, 내부망 전용 접근)를 잘 보호하세요.
컨테이너
- 목록은 「전체」「실행 중」「중지됨」으로 필터링할 수 있으며 카드에는 이미지, 네트워크, 포트, 마운트, 업데이트 상태가 표시됩니다.
- 작업: 시작, 중지, 재시작, 일시 중지, 재개, 강제 종료, 이름 변경, 삭제(익명 볼륨 함께 삭제 가능), 이미지로 커밋
- 자기 보호: Gately는 자신이 실행 중인 컨테이너와 Compose 프로젝트를 인식하여, 컨테이너 중지·강제 종료·일시 중지·삭제와 소속 프로젝트의
down처럼 스스로 접근할 수 없게 만드는 작업을 거부합니다. - 생성과 편집: 폼에서 이름, 이미지(생성 전에 먼저 pull 가능), 생성 후 시작, 명령과 Entrypoint, 환경 변수, 포트 매핑(TCP/UDP, 호스트 IP 지정 가능), 마운트(디렉터리 bind와 볼륨 volume, 읽기 전용 가능), 기본 네트워크와 추가 네트워크, 고정 IP, 별칭, 재시작 정책(
no,always,unless-stopped,on-failure와 최대 재시도 횟수), 특권 모드, capability 추가·제거, 장치 매핑, 사용자, 작업 디렉터리, 호스트 이름, DNS, 레이블, 메모리 상한(MB), CPU 코어 수, TTY와 stdin 유지를 다룹니다. 편집할 때는 기존 컨테이너 설정을 바탕으로 다시 만들며 폼에 없는 설정 항목은 기존 값을 유지하고, 다시 만들기에 실패하면 자동으로 롤백합니다. - 상세 페이지 탭:
- 개요: 상태, 종료 코드, 재시작 횟수, 헬스 상태, 네트워크 상세, 마운트, 소속 Compose 프로젝트와 서비스
- 로그: 최근 로그를 보며 타임스탬프를 표시할 수 있습니다.
- 터미널: 실행 중인 컨테이너 안에서 대화형 터미널을 엽니다(기본
/bin/sh, 명령과 사용자 지정 가능, 색상은 웹 터미널 설정을 따름). - 파일: 컨테이너 안의 파일을 탐색하고 텍스트를 온라인으로 편집(최대 1MiB)하며 업로드, 다운로드(디렉터리는 tar.gz로 묶음), 이름 변경, 디렉터리 생성, 삭제를 할 수 있습니다. 삭제는 컨테이너 안의
rm -rf로 수행되므로 컨테이너가 실행 중이어야 합니다. - 모니터링: CPU, 메모리, 네트워크와 디스크 IO, 프로세스 수 샘플링과 컨테이너 안의 프로세스 목록
Compose
Compose 프로젝트는 컨테이너 레이블 com.docker.compose.project 등으로 모아서 구성하며 상태(실행 중, 일부 실행 중, 중지됨)와 서비스를 표시합니다.
- 시작, 중지, 재시작, 일시 중지, 재개,
down(이름 있는 볼륨 함께 삭제 가능), 통합 로그 보기(각 줄 앞에 서비스 이름이 붙음) - 프로젝트 생성: compose 내용을 붙여 넣으면 Gately가 설정 디렉터리
compose/<name>/compose.yaml에 기록하고 up을 실행합니다. 이런 프로젝트는 「managed」로 표시되며 Compose 파일을 편집하고 저장해 적용하거나 프로젝트 전체를 삭제할 수 있습니다. - 기존 프로젝트는 첫 번째 compose 파일을 온라인으로 편집할 수 있으며(파일에 쓰기 권한 필요) 저장 후 바로 up을 실행하도록 선택할 수 있습니다.
up, 이미지 pull, 빌드와 파일 읽기/쓰기는docker compose명령줄과 compose 파일 경로에 대한 접근에 의존하며, 사용할 수 없으면 UI에 「docker compose 명령을 찾을 수 없습니다」라고 표시됩니다.
이미지
- 목록에는 태그, 크기, 생성 시간, 참조하는 컨테이너 수, dangling 상태가 표시되며 상세에는 레이어 기록, 환경 변수, 노출 포트 등이 포함됩니다.
- Pull: 「시스템」 설정의 레지스트리 계정으로 인증하며, 직접 pull이 실패하고 미러 주소가 설정되어 있으면 차례로 시도한 뒤 원래 이름으로 다시 태그를 붙입니다. Docker Hub 검색을 지원합니다.
- Push, 태그 추가, 삭제(강제 가능), 빌드(인라인 Dockerfile 또는 Git 주소, 빌드 인자 지정 가능), tar 가져오기와 내보내기(
docker save형식) - 업데이트 확인: 컨테이너 하나를 확인하거나 「전체 업데이트 확인」을 누르면 결과가 각 컨테이너에 표시됩니다.
- 원클릭 업그레이드: 새 이미지를 pull한 뒤 기존 설정 그대로 컨테이너를 다시 만듭니다. 업그레이드에 실패하면 기존 컨테이너로 자동 롤백됩니다. 여러 개를 선택해 한 번에 업그레이드할 수도 있습니다.
- 「dangling 정리」는 태그가 없고 사용되지 않는 이미지를 한 번에 삭제합니다.
네트워크와 볼륨
- 네트워크: 목록에 드라이버, 범위, 서브넷, 게이트웨이, 연결된 컨테이너가 표시됩니다. 생성(드라이버, 서브넷, 게이트웨이, 내부 네트워크, IPv6)과 삭제를 할 수 있고 컨테이너를 네트워크에 연결하거나 분리할 수 있으며 내장 네트워크는 보호됩니다.
- 볼륨: 드라이버, 마운트 지점, 크기, 참조 수, 사용하는 컨테이너가 표시됩니다. 생성, 삭제(강제 가능), tar.gz로 내보내기, tar.gz에서 가져오기를 할 수 있습니다. 내보내기와 가져오기는 임시 alpine 보조 컨테이너로 처리하며 이미지가 없으면 자동으로 pull합니다.
시스템
「시스템」 탭에는 다음이 있습니다.
- 호스트와 Docker 정보: 버전, API 버전, 운영체제와 아키텍처, 커널, CPU와 메모리, 스토리지 드라이버, 데이터 디렉터리, 컨테이너 및 이미지 수, Compose CLI 버전
- 디스크 사용량: 이미지, 컨테이너, 볼륨, 빌드 캐시의 개수, 크기, 회수 가능량
- 정리: 중지된 컨테이너, dangling 이미지, 사용하지 않는 모든 이미지, 사용하지 않는 네트워크, 사용하지 않는 볼륨(데이터가 영구 삭제됨), 빌드 캐시
- 설정:
| 필드 | 설명 |
|---|---|
host | Docker 주소, 기본값 unix:///var/run/docker.sock |
mirrors | 미러 주소 목록. 직접 pull이 실패하면 차례로 시도합니다. /etc/docker/daemon.json의 registry-mirrors와는 독립적이며, 후자는 Docker가 자동으로 사용하고 설정 페이지에 「데몬 미러」로 읽기 전용 표시됩니다 |
registries | 프라이빗 레지스트리 로그인 정보(server, username, password). 비밀번호는 UI에서 마스킹됩니다 |
autoCheckHours | 0보다 크면 해당 시간 간격으로 컨테이너 이미지 업데이트를 자동 확인하며 0이면 끕니다 |
백그라운드 작업
Pull, push, 빌드, 일괄 확인, 일괄 업그레이드, Compose up 등 오래 걸리는 작업은 백그라운드 작업으로 실행되며 페이지 하단의 작업 패널에 실시간 출력과 상태(실행 중, 완료, 오류)가 표시됩니다. 기록을 볼 수 있고 끝난 작업은 지울 수 있습니다. 페이지를 새로고침해도 아직 실행 중인 작업은 복원됩니다.
이벤트 알림
Gately는 Docker 이벤트 스트림을 구독하며, 컨테이너가 비정상 종료(종료 코드가 0이 아님)하거나 OOM으로 종료되면 docker.exited 이벤트를 발행합니다. 수신 채널은 알림 센터에서 설정할 수 있습니다. 종료 코드가 0인 정상 중지는 알리지 않습니다. Docker를 일시적으로 사용할 수 없으면 30초마다 구독을 자동으로 다시 시도합니다.
API
전체 API 설명은 Docker API를 참고하세요.