AICosmus

Where tech meets the everyday — AI, fintech, swimming, and cars.
Portainer 웹 대시보드 일러스트

Portainer 설치·활용법 – Docker 컨테이너를 GUI로 쉽게 관리하기

Docker를 사용하다 보면 자연스럽게 느끼는 불편함이 있습니다. 터미널에서 docker ps, docker logs, docker-compose up -d 같은 명령어를 반복적으로 입력하는 일이죠. 컨테이너가 두세 개일 때는 괜찮지만, Pi-hole, Uptime Kuma, Dify, n8n처럼 셀프호스팅 서비스가 늘어날수록 어떤 컨테이너가 돌아가고 있는지, 어떤 포트를 쓰고 있는지, 로그는 어디서 봐야 하는지 점점 헷갈리기 시작합니다.

이런 고민을 한 번에 해결해주는 도구가 바로 Portainer입니다. Portainer는 Docker 환경을 웹 브라우저에서 시각적으로 관리할 수 있게 해주는 오픈소스 컨테이너 관리 도구입니다. 컨테이너 생성, 시작, 정지, 삭제는 물론이고 로그 확인, 네트워크 설정, 볼륨 관리, 이미지 업데이트까지 클릭 몇 번으로 처리할 수 있습니다. 무료 Community Edition만으로도 개인 사용에는 충분하고, 설치도 Docker 명령어 두 줄이면 끝납니다.

이 글에서는 Portainer를 처음부터 설치하고, 실제로 컨테이너를 관리하는 핵심 기능들을 하나씩 살펴보겠습니다. Docker를 이미 사용 중이라면 5분 안에 훨씬 편한 관리 환경을 갖출 수 있습니다.

Portainer란 무엇인가 – Docker CLI의 한계를 넘어서는 GUI 관리 도구

Portainer는 뉴질랜드의 Portainer.io에서 개발한 오픈소스 컨테이너 관리 플랫폼입니다. 2016년 첫 버전이 나온 이후 꾸준히 발전해왔고, 2026년 현재 전 세계 100만 개 이상의 인스턴스에서 사용되고 있습니다. Docker, Docker Swarm, Kubernetes 환경을 모두 지원하지만, 개인 사용자에게는 단일 Docker 호스트 관리만으로도 충분히 가치 있습니다.

Docker CLI만으로 관리할 때의 불편함

Docker에 익숙한 분이라도 CLI만으로 여러 컨테이너를 관리하다 보면 다음과 같은 상황을 겪게 됩니다.

  • 현재 상태 파악이 번거롭다: docker ps -a로 목록을 확인하고, 각 컨테이너의 상세 정보를 보려면 docker inspect를 별도로 실행해야 합니다. 컨테이너가 10개 이상이면 터미널 출력만으로는 전체 상황을 한눈에 파악하기 어렵습니다.
  • 로그 확인이 불편하다: docker logs -f 컨테이너명을 입력해야 하고, 여러 컨테이너의 로그를 동시에 보려면 터미널 탭을 여러 개 열어야 합니다.
  • 환경 변수 수정이 까다롭다: 이미 실행 중인 컨테이너의 환경 변수를 변경하려면 컨테이너를 삭제하고 새로 만들어야 합니다. docker-compose.yml 파일을 수정하고 docker-compose up -d를 다시 실행하는 과정이 필요합니다.
  • 리소스 사용량 모니터링이 안 된다: docker stats로 CPU, 메모리 사용량을 볼 수 있지만, 히스토리가 남지 않아 추세를 파악할 수 없습니다.
  • 이미지 관리가 방치된다: 업데이트 후 남은 이전 버전 이미지가 쌓여 디스크를 차지하지만, 어떤 이미지가 사용 중이고 어떤 것이 불필요한지 구분하기가 쉽지 않습니다.

Portainer가 해결해주는 것

Portainer는 이 모든 작업을 웹 브라우저의 직관적인 대시보드에서 처리할 수 있게 해줍니다. 핵심 기능을 정리하면 다음과 같습니다.

  • 대시보드: 실행 중인 컨테이너, 이미지, 볼륨, 네트워크의 개수와 상태를 한 화면에서 확인
  • 컨테이너 관리: 생성, 시작, 정지, 재시작, 삭제, 복제를 버튼 클릭으로 수행
  • 실시간 로그 뷰어: 웹 브라우저에서 컨테이너 로그를 실시간으로 스트리밍, 검색, 다운로드
  • 웹 콘솔: 컨테이너 내부에 직접 접속하는 터미널을 브라우저에서 바로 열기
  • 스택(Stack) 관리: docker-compose.yml 파일을 웹 에디터에서 직접 작성하고 배포
  • 리소스 모니터링: CPU, 메모리, 네트워크 I/O 사용량을 그래프로 시각화
  • 이미지 관리: 사용 중인 이미지, 미사용 이미지를 구분하고 한 번에 정리
  • 사용자 권한 관리: 여러 사용자가 사용할 경우 역할별 접근 권한 설정

무료 Community Edition(CE)으로도 위 기능 대부분을 사용할 수 있습니다. Business Edition은 RBAC(역할 기반 접근 제어) 강화, Git 기반 자동 배포, 레지스트리 관리 등 팀 환경에 필요한 기능을 추가로 제공하지만, 개인 사용자나 소규모 홈서버 운영에는 CE로 충분합니다.

Docker CLI와 Portainer GUI 비교

Portainer 설치하기 – Docker 명령어 두 줄로 끝내기

Portainer의 가장 큰 장점 중 하나는 설치가 극도로 간단하다는 것입니다. Portainer 자체도 Docker 컨테이너로 실행되기 때문에, Docker가 이미 설치되어 있다면 별도의 의존성 설치 없이 바로 시작할 수 있습니다.

사전 준비

Portainer를 설치하기 전에 확인해야 할 것은 딱 하나, Docker가 설치되어 있는지입니다. 터미널에서 다음 명령어를 실행해보세요.

docker --version

Docker 버전 정보가 출력되면 준비 완료입니다. Docker가 설치되어 있지 않다면, 운영체제에 따라 Docker Desktop(Windows, macOS) 또는 Docker Engine(Linux)을 먼저 설치해주세요. Synology NAS의 경우 패키지 센터에서 Container Manager(구 Docker 패키지)를 설치하면 됩니다.

설치 단계

1단계: 데이터 저장용 볼륨 생성

Portainer의 설정, 사용자 정보, 스택 정보 등을 영구적으로 저장할 Docker 볼륨을 먼저 만듭니다.

docker volume create portainer_data

이 볼륨이 있어야 Portainer를 업데이트하거나 재시작해도 기존 설정이 유지됩니다.

2단계: Portainer 컨테이너 실행

다음 명령어로 Portainer CE를 실행합니다.

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

각 옵션의 의미를 살펴보겠습니다.

  • -d: 백그라운드(데몬) 모드로 실행합니다.
  • -p 8000:8000: Edge Agent 통신용 포트입니다. 단일 호스트에서는 사용하지 않지만 향후 확장을 위해 열어둡니다.
  • -p 9443:9443: Portainer 웹 UI에 접속하는 HTTPS 포트입니다. 이 포트로 브라우저에서 접속합니다.
  • –name portainer: 컨테이너 이름을 portainer로 지정합니다.
  • –restart=always: Docker 데몬이 재시작되거나 서버가 리부팅되어도 자동으로 다시 실행됩니다.
  • -v /var/run/docker.sock:/var/run/docker.sock: Docker 소켓을 마운트하여 Portainer가 호스트의 Docker 엔진을 제어할 수 있게 합니다.
  • -v portainer_data:/data: 앞서 만든 볼륨을 Portainer 데이터 디렉토리에 연결합니다.
  • portainer/portainer-ce:lts: Portainer Community Edition의 LTS(장기 지원) 이미지를 사용합니다.

Windows에서 Docker Desktop을 사용하는 경우, Docker 소켓 경로만 다릅니다.

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v //var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

WSL2 기반 Docker Desktop이라면 위 명령어가 그대로 동작합니다. Windows 컨테이너 모드를 사용하는 경우에는 -v \\.\pipe\docker_engine:\\.\pipe\docker_engine으로 변경해야 하지만, 대부분의 경우 Linux 컨테이너 모드를 사용하므로 신경 쓰지 않아도 됩니다.

초기 설정 – 관리자 계정 생성

설치가 완료되면 웹 브라우저에서 https://localhost:9443에 접속합니다. 원격 서버에 설치한 경우 https://서버IP:9443으로 접속하면 됩니다. 자체 서명 SSL 인증서를 사용하기 때문에 브라우저에서 보안 경고가 뜰 수 있는데, ‘고급’ → ‘계속 진행’을 클릭하면 됩니다.

처음 접속하면 관리자 계정을 생성하는 화면이 나타납니다. 사용자 이름(기본값 admin)과 비밀번호를 설정합니다. 비밀번호는 12자 이상이어야 합니다. 보안을 위해 충분히 복잡한 비밀번호를 사용하세요.

중요: Portainer를 설치한 후 5분 이내에 초기 설정을 완료해야 합니다. 보안상의 이유로, 5분이 지나면 초기 설정 페이지가 비활성화되고 Portainer 컨테이너를 재시작해야 다시 설정할 수 있습니다.

관리자 계정을 생성하면 환경(Environment) 설정 화면으로 이동합니다. ‘Get Started’를 클릭하면 현재 Docker 호스트가 자동으로 ‘local’이라는 이름으로 등록됩니다. 이제 Portainer의 메인 대시보드에 접속할 수 있습니다.

docker-compose로 설치하기

docker-compose.yml 파일로 관리하는 것을 선호한다면 다음 내용으로 파일을 만들고 docker compose up -d를 실행하면 됩니다.

version: "3.3"
services:
  portainer:
    image: portainer/portainer-ce:lts
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
volumes:
  portainer_data:

docker-compose 방식은 나중에 설정을 변경하거나 업데이트할 때 파일만 수정하면 되어 관리가 편합니다.

Portainer 설치 과정 흐름도

핵심 기능 살펴보기 – Portainer로 할 수 있는 모든 것

설치가 완료되었으니 이제 Portainer의 핵심 기능들을 하나씩 살펴보겠습니다. 왼쪽 사이드바 메뉴를 기준으로 가장 자주 사용하는 기능 위주로 설명합니다.

대시보드 – 전체 현황 한눈에 보기

Portainer에 로그인하면 가장 먼저 보이는 화면이 대시보드입니다. 여기서 현재 Docker 환경의 전체 현황을 즉시 파악할 수 있습니다.

  • Running/Stopped 컨테이너 수: 현재 실행 중인 컨테이너와 정지된 컨테이너의 개수를 표시합니다.
  • 이미지 수: 로컬에 저장된 Docker 이미지의 개수와 전체 용량을 보여줍니다.
  • 볼륨 수: 생성된 Docker 볼륨의 개수를 표시합니다.
  • 네트워크 수: Docker 네트워크의 개수를 보여줍니다.
  • 스택 수: Portainer에서 관리하는 스택(docker-compose 단위)의 개수입니다.

각 항목을 클릭하면 해당 리소스의 상세 목록 페이지로 이동합니다. 대시보드만 봐도 서버에서 무슨 일이 일어나고 있는지 3초 안에 파악할 수 있습니다.

컨테이너 관리 – 가장 많이 사용하는 핵심 기능

왼쪽 메뉴에서 ‘Containers’를 클릭하면 모든 컨테이너 목록이 표시됩니다. 여기서 할 수 있는 작업들을 살펴보겠습니다.

컨테이너 목록 보기

각 컨테이너의 이름, 상태(running/stopped/created), 사용 중인 이미지, 생성 시간, 포트 매핑 정보, IP 주소 등이 테이블 형태로 깔끔하게 정리되어 있습니다. 상단의 검색 바에서 컨테이너 이름으로 빠르게 필터링할 수도 있습니다. CLI에서 docker ps -a를 실행하는 것보다 훨씬 가독성이 좋습니다.

컨테이너 제어

컨테이너를 선택하고 상단의 버튼을 클릭하면 시작, 정지, 재시작, 일시정지, 삭제, Kill 등의 작업을 수행할 수 있습니다. 여러 컨테이너를 체크박스로 선택해서 한 번에 일괄 작업하는 것도 가능합니다. 예를 들어, 서버 점검 전에 모든 컨테이너를 한 번에 정지시키고 점검 후 다시 한 번에 시작하는 작업이 매우 간편해집니다.

컨테이너 상세 정보

컨테이너 이름을 클릭하면 상세 페이지로 이동합니다. 여기서 확인할 수 있는 정보는 다음과 같습니다.

  • 상태 정보: 컨테이너 ID, 생성 시간, 시작 시간, 상태, IP 주소 등
  • 포트 매핑: 호스트 포트와 컨테이너 포트의 매핑 관계
  • 환경 변수: 컨테이너에 설정된 모든 환경 변수 목록
  • 볼륨 마운트: 연결된 볼륨과 바인드 마운트 정보
  • 네트워크: 컨테이너가 연결된 Docker 네트워크 정보
  • 리소스 사용량: CPU, 메모리, 네트워크 I/O의 실시간 그래프

실시간 로그 뷰어

컨테이너 상세 페이지에서 ‘Logs’ 버튼을 클릭하면 실시간 로그 스트리밍 화면이 열립니다. CLI에서 docker logs -f를 실행하는 것과 같지만, 웹 브라우저에서 훨씬 편하게 볼 수 있습니다.

  • 자동 스크롤: 새로운 로그가 들어오면 자동으로 아래로 스크롤됩니다.
  • 검색: 특정 키워드로 로그를 필터링할 수 있습니다.
  • 타임스탬프 표시: 각 로그 라인에 시간 정보를 표시하거나 숨길 수 있습니다.
  • 줄 수 제한: 최근 100줄, 500줄, 1000줄 등으로 표시 범위를 조절할 수 있습니다.
  • 다운로드: 로그 전체를 텍스트 파일로 다운로드할 수 있습니다.

에러가 발생했을 때 빠르게 로그를 확인하고 원인을 파악하는 데 이 기능이 특히 유용합니다.

웹 콘솔 (Exec Console)

컨테이너 상세 페이지에서 ‘Console’ 버튼을 클릭하면 컨테이너 내부에 직접 접속하는 터미널이 브라우저 안에서 열립니다. 셸 종류(bash, sh, ash 등)를 선택하고 ‘Connect’를 클릭하면 됩니다. CLI에서 docker exec -it 컨테이너명 bash를 실행하는 것과 동일하지만, SSH 접속 없이 웹 브라우저에서 바로 작업할 수 있어 매우 편리합니다. 설정 파일을 직접 수정하거나, 디버깅 명령어를 실행하거나, 패키지를 추가 설치하는 등의 작업을 할 때 유용합니다.

스택(Stack) 관리 – docker-compose를 웹에서

Portainer의 ‘스택’ 기능은 docker-compose의 웹 버전이라고 생각하면 됩니다. 여러 컨테이너로 구성된 서비스를 하나의 단위로 관리할 수 있습니다.

새 스택 배포하기

왼쪽 메뉴에서 ‘Stacks’ → ‘Add stack’을 클릭합니다. 스택 이름을 입력하고, 웹 에디터에 docker-compose.yml 내용을 작성하거나 붙여넣기 합니다. 환경 변수도 별도의 입력란에서 추가할 수 있어서, 비밀번호나 API 키 같은 민감한 정보를 compose 파일과 분리하여 관리할 수 있습니다.

‘Deploy the stack’ 버튼을 클릭하면 docker-compose up -d를 실행하는 것과 동일하게 스택이 배포됩니다. 배포 과정에서 발생하는 로그도 화면에 바로 표시되어 문제가 생겼을 때 원인을 파악하기 쉽습니다.

스택 업데이트

이미 배포된 스택의 compose 파일을 수정해야 할 때, 스택 상세 페이지에서 ‘Editor’ 탭을 클릭하면 웹 에디터가 열립니다. 내용을 수정하고 ‘Update the stack’을 클릭하면 변경 사항이 적용됩니다. CLI에서 파일을 수정하고 docker compose up -d를 다시 실행하는 것보다 훨씬 간편합니다.

Git 연동

스택의 compose 파일을 Git 저장소에서 가져오는 것도 가능합니다. GitHub나 GitLab의 저장소 URL과 compose 파일 경로를 지정하면 Portainer가 자동으로 파일을 가져와 배포합니다. 주기적으로 Git 변경 사항을 확인하고 자동 재배포하는 기능도 있어서, GitOps 스타일의 워크플로우를 구현할 수 있습니다.

Portainer 스택 관리 화면 일러스트

이미지 관리 – 디스크 공간 확보하기

Docker를 오래 사용하다 보면 이전 버전의 이미지가 쌓여 디스크 공간을 차지하게 됩니다. Portainer의 ‘Images’ 메뉴에서 현재 로컬에 저장된 모든 이미지를 확인할 수 있습니다.

  • 사용 중인 이미지: 현재 컨테이너가 사용 중인 이미지에는 ‘In use’ 라벨이 표시됩니다.
  • 미사용 이미지: 어떤 컨테이너도 사용하지 않는 이미지를 쉽게 식별할 수 있습니다.
  • 이미지 크기: 각 이미지의 용량이 표시되어 디스크를 많이 차지하는 이미지를 파악할 수 있습니다.
  • 일괄 삭제: 미사용 이미지를 선택하여 한 번에 삭제할 수 있습니다.

이미지 목록 상단의 ‘Pull image’ 기능을 사용하면 Docker Hub에서 새로운 이미지를 직접 다운로드할 수도 있습니다. 이미지 이름과 태그를 입력하고 ‘Pull the image’를 클릭하면 됩니다.

볼륨 관리 – 데이터 안전하게 관리하기

‘Volumes’ 메뉴에서는 Docker 볼륨 목록을 확인하고 관리할 수 있습니다. 각 볼륨의 이름, 마운트 포인트, 생성 시간, 사용 중인 컨테이너 정보가 표시됩니다. 새로운 볼륨을 생성하거나, 사용하지 않는 볼륨을 삭제하는 것도 가능합니다.

특히 ‘Unused’ 필터를 사용하면 어떤 컨테이너에도 연결되지 않은 볼륨만 골라볼 수 있어서, 컨테이너를 삭제한 후 남겨진 고아 볼륨(orphan volume)을 정리할 때 유용합니다. 다만, 볼륨을 삭제하면 해당 데이터가 영구적으로 사라지므로 삭제 전에 반드시 확인하세요.

네트워크 관리

‘Networks’ 메뉴에서는 Docker 네트워크를 관리합니다. 기본적으로 생성되는 bridge, host, none 네트워크 외에, 사용자가 만든 커스텀 네트워크도 표시됩니다. 새로운 네트워크를 만들거나, 네트워크에 연결된 컨테이너를 확인하거나, 네트워크를 삭제하는 것이 모두 웹 UI에서 가능합니다.

여러 컨테이너를 같은 네트워크에 연결하면 컨테이너 이름으로 서로 통신할 수 있기 때문에, 마이크로서비스 아키텍처를 구성할 때 네트워크 관리가 중요합니다. Portainer를 통해 어떤 컨테이너가 어떤 네트워크에 있는지 시각적으로 확인할 수 있어서 네트워크 구성을 이해하기가 훨씬 쉬워집니다.

실전 활용 시나리오 – 이런 상황에서 Portainer가 빛난다

기능을 하나씩 살펴봤으니, 실제 사용 상황에서 Portainer가 어떻게 도움이 되는지 구체적인 시나리오로 알아보겠습니다.

시나리오 1: 셀프호스팅 서비스 일괄 관리

홈서버에 Pi-hole(광고 차단), Uptime Kuma(모니터링), n8n(자동화), Dify(AI 앱), Nextcloud(클라우드 스토리지) 등 여러 셀프호스팅 서비스를 운영하고 있다고 가정해봅시다. Portainer 없이는 각 서비스의 상태를 확인하려면 SSH로 서버에 접속하고 docker ps를 실행해야 합니다. 하지만 Portainer가 있으면 브라우저에서 대시보드만 열면 모든 서비스의 상태를 즉시 파악할 수 있습니다.

특정 서비스가 비정상적으로 메모리를 많이 사용하고 있다면 리소스 모니터링 그래프에서 바로 확인할 수 있고, 해당 컨테이너의 로그를 클릭 한 번으로 확인하여 원인을 파악할 수 있습니다. 문제가 해결되지 않으면 ‘재시작’ 버튼을 클릭하면 됩니다.

시나리오 2: 새로운 서비스 빠르게 배포하기

새로운 셀프호스팅 서비스를 설치하고 싶을 때, Portainer의 스택 기능을 사용하면 매우 편합니다. 예를 들어 Gitea(Git 서버)를 설치한다고 하면, ‘Stacks’ → ‘Add stack’으로 이동하여 docker-compose.yml 내용을 붙여넣고 배포하면 끝입니다. 터미널에서 파일을 만들고 명령어를 입력하는 것보다 직관적이고, 나중에 수정하거나 삭제할 때도 Portainer에서 관리할 수 있어 깔끔합니다.

시나리오 3: 컨테이너 업데이트

실행 중인 컨테이너의 이미지를 최신 버전으로 업데이트하는 과정도 Portainer에서 간편하게 처리할 수 있습니다. 컨테이너 상세 페이지에서 ‘Recreate’ 버튼을 클릭하고 ‘Re-pull image’ 옵션을 체크하면, 최신 이미지를 다운로드하고 기존 설정(포트, 볼륨, 환경 변수 등)을 유지한 채로 컨테이너를 재생성합니다. CLI에서 이미지를 pull하고, 기존 컨테이너를 삭제하고, 같은 옵션으로 다시 실행하는 복잡한 과정이 버튼 하나로 줄어듭니다.

스택으로 관리하는 서비스라면 더 간단합니다. 스택 상세 페이지에서 ‘Update the stack’을 클릭하고 ‘Re-pull image and redeploy’ 옵션을 선택하면 모든 서비스가 최신 버전으로 업데이트됩니다.

시나리오 4: 디스크 공간 정리

서버의 디스크 공간이 부족해졌을 때, Portainer의 이미지 관리 기능이 빛을 발합니다. ‘Images’ 메뉴에서 미사용 이미지를 정렬하고, 오래된 버전의 이미지를 선택하여 삭제하면 상당한 디스크 공간을 확보할 수 있습니다. Docker 이미지 하나가 수백 MB에서 수 GB까지 차지하는 경우가 많기 때문에, 정기적으로 미사용 이미지를 정리하는 것이 중요합니다.

컨테이너 리소스 모니터링 대시보드

보안 설정 – Portainer를 안전하게 운영하기 위한 필수 체크리스트

Portainer는 Docker 엔진에 대한 완전한 제어 권한을 가지는 도구이기 때문에, 보안 설정에 특별히 신경 써야 합니다. 무단 접근자가 Portainer에 로그인하면 서버의 모든 컨테이너를 삭제하거나 악성 컨테이너를 실행할 수 있습니다.

필수 보안 조치

  • 강력한 관리자 비밀번호 사용: 최소 16자 이상, 대소문자·숫자·특수문자를 포함한 비밀번호를 설정하세요.
  • 외부 접근 제한: Portainer 포트(9443)를 공유기에서 포트포워딩하지 마세요. 외부에서 접근해야 한다면 Tailscale이나 Cloudflare Tunnel을 통해 안전하게 연결하세요.
  • HTTPS 사용: Portainer는 기본적으로 자체 서명 인증서를 사용한 HTTPS를 제공합니다. 가능하다면 Let’s Encrypt 인증서를 적용하여 브라우저 경고를 없애세요. Portainer 설정에서 직접 인증서를 업로드하거나, Nginx Proxy Manager 등의 리버스 프록시를 앞에 두는 방법을 사용할 수 있습니다.
  • 정기적 업데이트: Portainer도 소프트웨어이므로 보안 취약점이 발견될 수 있습니다. 정기적으로 최신 버전으로 업데이트하세요.
  • 불필요한 사용자 계정 삭제: 테스트 목적으로 만든 계정이 있다면 사용 후 삭제하세요.

사용자 권한 관리

가족이나 팀원과 함께 서버를 관리하는 경우, Portainer의 사용자 관리 기능을 활용하면 각 사용자에게 적절한 권한만 부여할 수 있습니다. 관리자(Administrator)는 모든 작업을 수행할 수 있고, 일반 사용자(User)는 관리자가 허용한 리소스에만 접근할 수 있습니다. 환경(Environment)별로 접근 권한을 다르게 설정할 수 있어서, 특정 사용자에게는 개발 환경만 보이게 하는 것도 가능합니다.

업데이트와 백업 – Portainer 자체를 관리하는 방법

Portainer도 Docker 컨테이너이므로 업데이트 방법이 일반 컨테이너와 동일합니다. 다만 Portainer를 업데이트하는 동안에는 Portainer 자체를 사용할 수 없으므로 CLI에서 진행해야 합니다.

Portainer 업데이트 절차

다음 명령어를 순서대로 실행합니다.

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:lts
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

portainer_data 볼륨을 삭제하지 않았기 때문에 기존 설정, 사용자 계정, 스택 정보가 모두 유지됩니다. 업데이트 후 웹 브라우저에서 접속하여 정상적으로 동작하는지 확인하세요.

데이터 백업

Portainer의 모든 설정 데이터는 portainer_data 볼륨에 저장됩니다. 이 볼륨을 백업해두면 만약의 경우에 복구할 수 있습니다.

Docker 볼륨을 백업하는 간단한 방법은 다음과 같습니다.

docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czf /backup/portainer_backup.tar.gz /data

이 명령어는 portainer_data 볼륨의 내용을 현재 디렉토리에 portainer_backup.tar.gz 파일로 압축합니다. 복구할 때는 역순으로 진행하면 됩니다.

또한 Portainer의 ‘Settings’ → ‘Backup configuration’ 메뉴에서 웹 UI를 통해 설정을 JSON 파일로 내보내고 가져오는 것도 가능합니다. 이 방법은 Portainer의 설정만 백업하는 것이지 컨테이너 데이터를 백업하는 것은 아니라는 점에 주의하세요.

마무리 – Docker를 쓴다면 Portainer는 필수

Portainer를 설치한 후 가장 크게 달라지는 점은 서버 관리에 대한 심리적 부담이 줄어든다는 것입니다. 터미널을 열고 명령어를 떠올리는 대신, 브라우저에서 클릭 몇 번으로 모든 작업을 처리할 수 있습니다. 특히 여러 셀프호스팅 서비스를 운영하는 분이라면, Portainer의 대시보드 하나로 전체 서비스의 건강 상태를 한눈에 파악할 수 있어 안심이 됩니다.

Docker CLI에 익숙한 분이라도 Portainer를 보조 도구로 사용하면 생산성이 크게 향상됩니다. 복잡한 옵션을 기억할 필요 없이 GUI에서 설정을 확인하고 수정할 수 있고, 로그를 편하게 볼 수 있고, 리소스 사용량을 시각적으로 모니터링할 수 있습니다. CLI를 완전히 대체하는 것이 아니라, CLI와 함께 사용할 때 가장 효과적입니다.

설치는 5분, 사용법 익히는 데 10분이면 충분합니다. 이미 Docker를 사용하고 계시다면, 지금 바로 Portainer를 설치해보세요. 서버 관리가 한결 가벼워질 것입니다.

이미지는 Leonardo AI 로 생성되었습니다.

이미지는 Claude AI 로 생성되었습니다.

답글 남기기

Your email address will not be published. Required fields are marked *.

Warning: Undefined array key "cookies" in /var/www/html/wp-content/themes/personal-cv-resume/class/class-post-related.php on line 212
*
*

최신 댓글