Portainer는 Docker, Swarm, Kubernetes 환경을 웹 인터페이스로 손쉽게 관리할 수 있는 도구입니다.
복잡한 CLI 명령어 대신 브라우저에서 컨테이너, 이미지, 볼륨, 네트워크를 관리할 수 있습니다.
🔧 1. Portainer란 무엇인가?
Portainer는 Docker의 GUI 관리 도구로,
CLI 대신 브라우저 기반 UI를 통해 아래 작업을 손쉽게 수행할 수 있습니다.
| 기능 | 설명 |
|---|---|
| 🧩 컨테이너 관리 | 컨테이너 시작/중지, 로그 확인, 환경변수 수정 |
| 🖼️ 이미지 관리 | 이미지 다운로드, 태그 변경, 삭제 |
| 💾 볼륨 관리 | 볼륨 생성 및 마운트 상태 확인 |
| 🌐 네트워크 관리 | 브리지/오버레이 네트워크 설정 |
| 👥 사용자 관리 | 권한 기반 접근 제어 (Role Based Access Control) |
🖥️ 2. 설치 전 준비사항
Portainer를 설치하기 위해 다음 환경이 준비되어 있어야 합니다.
| 항목 | 내용 |
|---|---|
| OS | Linux (Ubuntu, RedHat, CentOS, Rocky, Debian 등) |
| Docker | 20.x 이상 |
| 네트워크 | 포트 9443(https), 9000(http) 개방 |
| 권한 | root 또는 sudo 권한 필요 |
🧠 Tip: Portainer는 Docker 위에서 컨테이너로 실행되므로,
기존 서버 환경을 변경하지 않고 쉽게 설치·삭제할 수 있습니다.
⚙️ 3. Portainer 설치 명령어
✅ 1) Docker 볼륨 생성
Portainer는 설정 데이터를 내부에 저장하므로,
컨테이너를 재시작해도 설정이 유지되도록 볼륨을 미리 만들어야 합니다.
sudo docker volume create portainer_data
✅ 2) Portainer 서버 컨테이너 실행
sudo docker run -d \
-p 9000:9000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
🔍 옵션 설명
| 옵션 | 설명 |
|---|---|
-d |
백그라운드 실행 |
-p 9000:9000 |
HTTP 접근용 포트 |
-p 9443:9443 |
HTTPS 접근용 포트 |
--name portainer |
컨테이너 이름 지정 |
--restart=always |
Docker 재시작 시 자동 기동 |
-v /var/run/docker.sock:/var/run/docker.sock |
호스트의 Docker 제어 소켓 연결 |
-v portainer_data:/data |
설정 유지용 볼륨 마운트 |
🌍 4. 브라우저 접속 및 초기 설정
🔗 접속 주소
http://서버IP:9000
또는
https://서버IP:9443
예시:
https://10.88.2.99:9443
👤 첫 로그인 시 초기 설정
- Admin 계정 생성
→ 관리자 ID/비밀번호 입력 - 로컬 Docker 환경 선택
→ “Get Started” 버튼 클릭
이제 Portainer 대시보드가 열리며
현재 서버의 Docker 상태가 시각적으로 표시됩니다.
🧰 5. 컨테이너 관리 예시
Portainer의 가장 큰 장점은 CLI 없이 GUI로 관리 가능하다는 점입니다.
| 기능 | Portainer에서의 경로 |
|---|---|
| 새로운 컨테이너 실행 | Containers → Add Container |
| 로그 확인 | Containers → 선택 → Logs |
| 네트워크 연결 | Networks → Add network |
| 이미지 다운로드 | Images → Pull image |
| 시스템 리소스 모니터링 | Dashboard |
🧑💻 6. Portainer 업데이트 방법
Portainer는 업데이트도 간단합니다.
기존 컨테이너를 삭제하고 다시 pull 하면 됩니다.
sudo docker stop portainer
sudo docker rm portainer
sudo docker pull portainer/portainer-ce:latest
sudo docker run -d \
-p 9000:9000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
기존 설정(portainer_data)이 유지되므로 재설정이 필요 없습니다.
🔒 7. 방화벽 설정 (선택사항)
만약 서버에 방화벽이 설정되어 있다면,
9000 또는 9443 포트를 열어야 외부에서 접속 가능합니다.
sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --add-port=9443/tcp --permanent
sudo firewall-cmd --reload
🚀 8. Portainer Agent (멀티 노드 관리용)
여러 Docker 서버를 한 곳에서 관리하려면 Portainer Agent를 각 서버에 설치합니다.
Agent 설치 명령:
sudo docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest
이후 Portainer → Environments → Add Environment → Agent
→ 대상 서버 IP와 포트 9001을 입력하면 됩니다.
🧩 9. Portainer Stack 관리 (docker-compose 지원)
Portainer는 Stack 기능을 통해 docker-compose.yml 파일을 바로 실행할 수 있습니다.
- Portainer → Stacks → Add Stack
docker-compose.yml내용 붙여넣기- “Deploy the Stack” 클릭
→ 브라우저에서 손쉽게 여러 컨테이너를 한 번에 배포할 수 있습니다.
💡 추천 조합:
- Portainer + Nginx Proxy Manager
- Portainer + Watchtower (자동 업데이트)
- Portainer + Grafana/Prometheus (모니터링)
댓글