Portainer 설치하고 Docker 관리하기
Docker 컨테이너들을 웹 UI로 쉽게 관리하고 싶다면 Portainer가 최고의 선택이다. 복잡한 명령어 없이도 컨테이너, 이미지, 볼륨, 네트워크를 직관적으로 관리할 수 있다.
🎯 Portainer란?
Portainer는 Docker 환경을 위한 오픈소스 웹 기반 관리 도구다. 다음과 같은 기능을 제공한다:
- 🐳 컨테이너 생성, 시작, 중지, 삭제
- 📦 이미지 관리 및 Docker Hub 연동
- 📊 리소스 모니터링 및 로그 확인
- 🔧 Docker Compose 스택 관리
- 👥 사용자 및 권한 관리
📋 사전 요구사항
- Docker가 설치되어 있어야 한다
- 포트 9000번이 사용 가능해야 한다
🚀 Portainer CE (Community Edition) 설치
방법 1: Docker 볼륨 사용 (추천)
1. Portainer 데이터 볼륨 생성
docker volume create portainer_data
2. Portainer 컨테이너 실행
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
방법 2: 호스트 디렉토리 바인드
1. 데이터 디렉토리 생성
sudo mkdir -p /opt/portainer/data
2. Portainer 컨테이너 실행
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/portainer/data:/data \
portainer/portainer-ce:latest
🔧 Docker Compose로 설치 (추천)
더 체계적인 관리를 위해 Docker Compose를 사용하는 방법:
1. docker-compose.yml 파일 생성
mkdir -p ~/portainer
cd ~/portainer
# docker-compose.yml
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "8000:8000"
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
environment:
- TZ=Asia/Seoul
volumes:
portainer_data:
2. Portainer 실행
docker compose up -d
🌐 Portainer 초기 설정
1. 웹 브라우저로 접속
http://localhost:9000
또는 서버 IP 주소를 사용:
http://서버IP:9000
2. 관리자 계정 생성
- Username: 원하는 관리자 사용자명 입력
- Password: 최소 12자 이상의 강력한 비밀번호 입력
- Confirm password: 비밀번호 재확인
⚠️ 중요: 첫 접속 후 5분 이내에 설정을 완료해야 한다!
3. Docker 환경 연결
- Get Started 버튼 클릭
- Local 선택 (같은 서버에서 실행 중인 경우)
- Connect 버튼 클릭
🔐 보안 설정 (선택사항)
HTTPS 설정
프로덕션 환경에서는 HTTPS를 사용하는 것이 좋다:
# SSL 인증서가 있는 경우
docker run -d \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
-v /path/to/certs:/certs \
portainer/portainer-ce:latest \
--ssl \
--sslcert /certs/portainer.crt \
--sslkey /certs/portainer.key
방화벽 설정 (UFW 사용 시)
# 포트 9000 허용
sudo ufw allow 9000/tcp
# 특정 IP에서만 접근 허용 (더 안전함)
sudo ufw allow from 192.168.1.0/24 to any port 9000
📊 Portainer 사용법
대시보드 둘러보기
- Home: 전체 환경 개요
- Containers: 실행 중인 컨테이너 목록
- Images: 다운로드된 이미지 목록
- Networks: Docker 네트워크 관리
- Volumes: 볼륨 관리
- Stacks: Docker Compose 스택 관리
새 컨테이너 생성하기
- Containers → Add container 클릭
- Name: 컨테이너 이름 입력
- Image: 사용할 이미지 입력 (예:
nginx:latest) - Port mapping: 필요한 포트 매핑 설정
- Deploy the container 클릭
🔄 Portainer 업데이트
1. 기존 컨테이너 중지 및 제거
docker stop portainer
docker rm portainer
2. 새 버전으로 재실행
docker run -d \
-p 8000:8000 \
-p 9000:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Docker Compose 사용 시
cd ~/portainer
docker compose pull
docker compose up -d
🚨 문제 해결
Portainer에 접속할 수 없는 경우
# 컨테이너 상태 확인
docker ps | grep portainer
# 포트 사용 확인
sudo netstat -tlnp | grep :9000
# 로그 확인
docker logs portainer
권한 문제가 발생하는 경우
# Docker 소켓 권한 확인
ls -la /var/run/docker.sock
# 필요시 권한 수정
sudo chmod 666 /var/run/docker.sock
💡 유용한 팁
1. 정기적인 백업
# Portainer 데이터 백업
docker run --rm \
-v portainer_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/portainer-backup-$(date +%Y%m%d).tar.gz -C /data .
2. 리소스 모니터링 설정
- Settings → Feature configuration에서 Enable features subject to subscription 체크
- 컨테이너별 CPU, 메모리 사용량 실시간 모니터링 가능
3. 템플릿 활용
- App Templates에서 미리 구성된 애플리케이션 스택 사용
- WordPress, Nginx, PostgreSQL 등 원클릭 배포 가능