
컨테이너 GUI 관리 도구 Portainer 도입
이전 글에서는 Docker 기반으로 웹 푸시 알림 서비스를 설계한 전체 구성과 아키텍처 개요를 정리했다.
이번 글에서는 실제 프로젝트를 시작하며 Docker 컨테이너를 효율적으로 관리하기 위해 Portainer를 도입한 이유와 설치 과정을 정리한다.
1. Portainer 도입 이유
이번 프로젝트는 다음과 같은 특징을 가진다.
- 단일 서버 환경
- Docker 기반 서비스 운영
- 서비스별 컨테이너 분리
- 향후 컨테이너 수 증가 가능성 고려
이런 환경에서 명령어로만 관리하는 데에는 한계가 있다.
특히 운영 관점에서는 다음과 같은 불편함이 발생할 수 있다.
- 실행 중인 컨테이너 상태를 한눈에 보기 어렵고 CLI로 로그를 하나하나 확인해야함
- 컨테이너 재시작·중지 작업의 번거로움
이러한 문제를 해결하기 위해 웹 기반 Docker 관리 도구인 Portainer를 도입했다.
2. Portainer란?
Docker 환경을 웹 UI로 관리할 수 있는 경량 컨테이너 관리 도구이다.
주요 기능은 다음과 같다.
- 컨테이너 / 이미지 / 볼륨 / 네트워크 관리
- 로그 실시간 확인
- 컨테이너 재시작 / 중지 / 삭제
- docker-compose(Stack) 관리
- 사용자 및 권한 관리
CLI 중심의 도커 관리 방식에 가시성과 편의성을 더해주는 도구라고 보면 된다.
3. 디렉토리 구성 설계
프로젝트 전체 디렉토리 구조는 아래와 같이 구성했다. (추후 추가·변경될 수 있음)
/home
├── services/ # 웹 기반 서비스 컨테이너
├── batch/ # 배치 및 스케줄 작업 컨테이너
└── portainer/ # Portainer 전용 디렉터리
구성 의도
- services/
→ 실제 웹 서비스(Spring Boot, API 서버 등) - batch/
→ 푸시 발송, 배치 및 스케줄 작업 컨테이너 - portainer/
→ 관리 도구는 서비스와 명확하게 분리
→ 장애 발생 시에도 관리 UI는 독립적으로 접근 가능
운영 관점에서 관리 도구는 항상 살아 있어야 한다는 기준으로 구조를 잡았다.
4. Portainer 설치 과정
4-1. Portainer 전용 디렉토리 생성
mkdir -p /home/portainer
cd /home/portainer
4-2. docker-compose.yml 작성
services:
portainer:
image:portainer/portainer-ce:latest
container_name:portainer
restart:unless-stopped
ports:
-"서버IP:포트:포트"
volumes:
-/var/run/docker.sock:/var/run/docker.sock #Docker 제어하기 위해 필수
-/home/portainer/data:/data
원래는 리버스 프록시 방식으로 Nginx와 같은 네트워크에서 연결시키고 싶었지만, 실패했다..
Docker 관리 도구(Portainer) 도입 시 겪은 시행착오 정리
Docker 관리 도구(Portainer) 도입 시 겪은 시행착오 정리
운영 중인 서버에서 Docker 기반 서비스가 늘어나면서 컨테이너 상태와 리소스를 직관적으로 확인할 수 있는 관리 도구의 필요성을 느끼게 되었다. 이에 Docker 관리 UI 도구인 Portainer 도입을 검토
hmw0908.tistory.com
4-3. 컨테이너 실행
# 정상적으로 실행되면 아래 주소로 접근 가능
# https://서버IP:포트
docker-compose up -d
5. Portainer 도입 효과 및 장점
① 컨테이너 상태 가시성 향상
- 실행 중인 컨테이너 상태를 한눈에 확인
- CPU / Memory 사용량 확인 가능
② 로그 확인의 편의성
- CLI 접속 없이 웹에서 로그 실시간 확인
- 장애 분석 속도 향상
③ 운영 안정성 확보
- 컨테이너 재시작, 중지 작업을 UI로 안전하게 수행
- docker-compose(Stack) 관리 가능
④ 협업에 유리
- Docker에 익숙하지 않은 인원도 접근 가능
- 운영 설명 및 인수인계 시 활용도 높음
6. 정리
Portainer는 단순한 편의 도구를 넘어, Docker 기반 서비스 운영의 안정성과 관리 효율을 크게 높여주는 필수 도구라고 판단했다.
이번 단계에서는 관리 환경을 먼저 안정적으로 구축했고,
다음 단계에서는 실제 웹 푸시 알림 서비스 컨테이너 구성 및 배포 과정을 이어서 정리할 예정이다.

'SideProject' 카테고리의 다른 글
| Docker 기반 웹 푸시 알림 시스템 - 1 (0) | 2026.01.14 |
|---|---|
| 단축URL 구현하기 (네이버 me2.do 서비스 종료) (2) | 2025.01.20 |