토. 8월 9th, 2025

안녕하세요! 🐳 오늘은 Docker 환경을 더욱 쉽고 효율적으로 관리할 수 있게 해주는 강력한 웹 기반 GUI 도구, Portainer를 설치하는 방법에 대해 자세히 알아보겠습니다. 복잡한 CLI 명령어가 익숙하지 않거나, 현재 실행 중인 컨테이너들을 한눈에 파악하고 싶으시다면 Portainer는 여러분의 필수 도구가 될 것입니다.


💡 Portainer란 무엇인가요?

Portainer는 Docker, Docker Swarm, Kubernetes 환경을 웹 기반 인터페이스로 관리할 수 있게 해주는 오픈 소스 관리 도구입니다. 컨테이너 생성 및 관리, 이미지, 볼륨, 네트워크 설정 등 Docker와 관련된 거의 모든 작업을 시각적으로 수행할 수 있어 생산성을 크게 향상시켜줍니다.

Portainer를 사용하면 좋은 점:

  • 시각적 관리: 복잡한 명령어 없이 클릭 몇 번으로 컨테이너를 생성, 시작, 중지, 삭제할 수 있습니다.
  • 쉬운 접근성: 웹 브라우저를 통해 어디서든 Docker 환경에 접근하고 관리할 수 있습니다.
  • 생산성 향상: 반복적인 작업을 GUI로 빠르게 처리하여 시간을 절약할 수 있습니다.
  • 에러 감소: CLI 명령어 오타 등으로 발생하는 실수를 줄일 수 있습니다.

✅ 준비물 (Prerequisites)

Portainer를 설치하기 전에 다음 사항들을 확인해주세요.

  1. Docker 설치: 서버 또는 PC에 Docker Engine (Docker Desktop 포함)이 설치되어 있어야 합니다.
  2. 터미널/명령 프롬프트: 기본적인 터미널 사용 능력이 필요합니다.
  3. 인터넷 연결: Portainer 이미지를 다운로드하기 위해 필요합니다.

🚀 Portainer 설치 단계별 가이드

이제 본격적으로 Portainer를 설치해보겠습니다. 과정은 매우 간단합니다!

1단계: Portainer 데이터 볼륨 생성 📁💾

Portainer의 설정 및 데이터가 컨테이너가 삭제되어도 유지될 수 있도록 Docker 볼륨을 먼저 생성해줍니다. 이 볼륨은 Portainer가 사용하는 내부 데이터를 저장할 공간입니다.

docker volume create portainer_data
  • 설명: portainer_data라는 이름의 Docker 볼륨을 생성하는 명령어입니다.

2단계: Portainer 컨테이너 실행 🚀✨

이제 Portainer 이미지를 다운로드하고 컨테이너로 실행할 차례입니다.

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:latest
  • 명령어 상세 설명:
    • -d: Detached mode (백그라운드에서 컨테이너를 실행합니다). 터미널을 닫아도 컨테이너는 계속 실행됩니다.
    • -p 8000:8000: HTTP 접속을 위한 포트 매핑입니다. 컨테이너의 8000번 포트를 호스트의 8000번 포트로 연결합니다.
    • -p 9443:9443: HTTPS 접속을 위한 포트 매핑입니다. Portainer는 기본적으로 HTTPS를 사용하며, 9443번 포트가 권장됩니다.
    • --name portainer: 컨테이너의 이름을 portainer로 지정하여 쉽게 식별하고 관리할 수 있게 합니다.
    • --restart always: Docker 데몬이 시작되거나 컨테이너가 예기치 않게 종료될 경우 항상 자동으로 다시 시작하도록 설정합니다.
    • -v /var/run/docker.sock:/var/run/docker.sock: 가장 중요한 부분입니다! Portainer가 호스트의 Docker 데몬과 통신할 수 있도록 Docker 소켓 파일을 마운트하는 설정입니다. 이 설정을 통해 Portainer가 호스트의 Docker 환경을 관리할 수 있습니다.
      • Windows/macOS Docker Desktop 사용자 참고: Docker Desktop 환경에서는 docker.sock 경로가 자동으로 처리되므로, 이 경로를 별도로 수정할 필요는 없습니다. 대부분의 경우 위 명령어를 그대로 사용하시면 됩니다.
    • -v portainer_data:/data: 1단계에서 생성한 portainer_data 볼륨을 컨테이너 내부의 /data 디렉터리에 마운트하여 Portainer의 데이터를 영구적으로 저장합니다.
    • portainer/portainer-ce:latest: 사용할 Docker 이미지 이름입니다. portainer-ce는 Community Edition을 의미하며, latest는 최신 버전을 사용하겠다는 의미입니다.

성공적으로 실행되면, 컨테이너 ID가 터미널에 출력됩니다. 이제 Portainer 컨테이너가 백그라운드에서 실행되고 있는 것을 확인할 수 있습니다.

컨테이너가 잘 실행 중인지 확인하고 싶다면 다음 명령어를 입력해보세요:

docker ps

portainer라는 이름의 컨테이너가 Up 상태로 보인다면 성공입니다!

CONTAINER ID   IMAGE                         COMMAND        CREATED          STATUS          PORTS                                       NAMES
xxxxxxxxxxxx   portainer/portainer-ce:latest "/portainer"   10 seconds ago   Up 8 seconds    0.0.0.0:8000->8000/tcp, 0.0.0.0:9443->9443/tcp   portainer

🌐 Portainer에 접속하기

이제 웹 브라우저를 통해 Portainer에 접속할 차례입니다.

  1. 서버 IP 확인: Portainer가 설치된 서버의 IP 주소를 확인합니다.

    • Linux: ip a 또는 ifconfig 명령어를 사용합니다.
    • Windows/macOS (Docker Desktop): 대부분 localhost를 사용합니다.
  2. 브라우저 접속: 웹 브라우저를 열고 다음 주소로 접속합니다.

    • HTTPS (권장): https://[서버 IP 또는 localhost]:9443
    • HTTP (선택 사항): http://[서버 IP 또는 localhost]:8000 (HTTPS 연결이 되지 않을 경우 시도해보세요. 대부분의 최신 브라우저는 HTTPS를 기본으로 합니다.)

예시: https://localhost:9443 또는 https://192.168.1.100:9443


🔐 초기 설정 (First-time Setup)

최초 접속 시에는 Portainer 관리자 계정(admin)의 비밀번호를 설정해야 합니다.

  1. 비밀번호 설정: admin 사용자 이름에 대한 강력한 비밀번호를 입력하고 확인 후 “Create user” 버튼을 클릭합니다. ![Portainer 초기 비밀번호 설정 화면 예시] (실제 스크린샷은 포함할 수 없지만, “admin” 사용자명과 비밀번호 입력란이 있는 화면을 상상하시면 됩니다.)

  2. 환경 연결 선택: 비밀번호 설정을 완료하면 Portainer가 관리할 Docker 환경을 선택하는 화면이 나타납니다. 우리는 현재 Portainer를 설치한 로컬 Docker 환경을 관리할 것이므로 “Get Started” 아래의 “Local” 옵션을 선택하고 “Connect” 버튼을 클릭합니다. ![Portainer 환경 연결 선택 화면 예시] (“Local”과 “Remote” 옵션이 있고 “Local”을 선택하는 화면을 상상하시면 됩니다.)

모든 설정이 완료되면 Portainer 대시보드로 이동합니다! 축하합니다! 🎉


👀 Portainer 둘러보기

Portainer 대시보드에 접속하면 현재 Docker 환경에 대한 개요를 한눈에 볼 수 있습니다. 왼쪽 사이드바에는 다양한 메뉴들이 있습니다.

  • Dashboard: 컨테이너, 이미지, 볼륨 등 전체적인 Docker 리소스 현황을 보여줍니다.
  • Containers: 실행 중이거나 중지된 모든 컨테이너를 확인하고 관리할 수 있습니다. 생성, 시작, 중지, 재시작, 삭제 등 모든 작업이 가능합니다.
  • Images: 다운로드된 Docker 이미지 목록을 확인하고, 이미지를 빌드하거나 삭제할 수 있습니다.
  • Volumes: 생성된 데이터 볼륨을 관리합니다.
  • Networks: Docker 네트워크를 생성, 관리, 확인할 수 있습니다.
  • Stacks: Docker Compose 파일을 이용하여 여러 개의 컨테이너를 한 번에 배포하고 관리할 수 있습니다.
  • Registries: Docker Hub 외에 다른 컨테이너 레지스트리를 추가하여 사용할 수 있습니다.
  • Users/Teams: 여러 사용자가 Portainer를 사용하도록 계정을 관리할 수 있습니다.

⚠️ 문제 해결 (Troubleshooting)

설치 과정에서 발생할 수 있는 몇 가지 일반적인 문제와 해결 방법을 소개합니다.

  • “Site cannot be reached” 또는 “Connection refused” 오류:

    • Portainer 컨테이너가 실행 중인지 확인: docker ps 명령어로 Portainer 컨테이너의 STATUS가 Up인지 확인하세요.
    • 포트 충돌: 9443 또는 8000 포트가 다른 애플리케이션에 의해 사용 중일 수 있습니다.
      • Linux: sudo netstat -tulnp | grep 9443 (또는 8000) 명령어로 해당 포트를 사용하는 프로세스가 있는지 확인하고, 있다면 해당 프로세스를 중지하거나 Portainer 포트를 변경해야 합니다.
      • 해결책: Portainer 실행 명령어의 -p 옵션을 다른 사용 가능한 포트로 변경합니다. 예: -p 9000:9443
  • “Error: Could not retrieve info from Docker daemon” 또는 권한 문제:

    • Docker 데몬 실행 확인: Docker 서비스가 실행 중인지 확인하세요. (e.g., sudo systemctl status docker 또는 Docker Desktop 실행 여부 확인)
    • Docker 소켓 권한: /var/run/docker.sock 파일에 Portainer 컨테이너가 접근할 수 있는 권한이 없는 경우입니다.
      • Linux: 현재 사용자에게 docker 그룹 권한을 부여하세요: sudo usermod -aG docker $USER 그리고 시스템을 재부팅하거나 다시 로그인하여 변경사항을 적용합니다. 그 후에 Portainer 컨테이너를 재시작해봅니다.
  • 컨테이너가 계속 “Exited” 상태로 종료되는 경우:

    • 로그 확인: docker logs portainer 명령어를 사용하여 컨테이너의 로그를 확인하세요. 로그에 오류 메시지가 있을 것입니다. 이를 통해 문제의 원인을 파악할 수 있습니다.

🎉 마무리

이제 여러분은 Docker 환경을 GUI로 손쉽게 관리할 수 있는 Portainer를 성공적으로 설치하셨습니다! Portainer를 활용하면 컨테이너 관리, 배포, 모니터링 등의 작업을 훨씬 더 효율적으로 수행할 수 있습니다.

앞으로 Portainer의 다양한 기능을 활용하여 여러분의 Docker 환경을 더욱 강력하게 만들어 보세요. 궁금한 점이나 더 알고 싶은 기능이 있다면 언제든지 댓글로 남겨주세요! 행복한 컨테이너 라이프 되시길 바랍니다. 👏

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다