Portainer를 통해서 Docker 컨테이너를 쉽게 관리하는 방법에 대해서 알아볼려고 합니다.
Portainer는 Docker 및 Kubernetes 환경을 관리하기 위한 오픈 소스 툴입니다.
웹 기반의 사용자 친화적인 인터페이스를 제공하여, 컨테이너 기반의 애플리케이션을 쉽게 배포하고 모니터링할 수 있습니다.
Portainer에는 여러가지 기능이 있지만 4개 정도만 알아보도록 하겠습니다.
컨테이너 관리 : Docker 컨테이너를 생성, 시작, 중지, 재시작하고 로그를 확인하거나 제거할 수 있습니다.
이미지 및 볼륨 관리 : Docker 이미지를 다운로드하거나 삭제하고, Docker 데이터 볼륨을 관리할 수 있습니다.
네트워크 관리 : Docker 네트워크를 생성하거나 수정하고, 컨테이너 간의 네트워크 연결을 관리할 수 있습니다.
사용자 및 팀 관리 : 여러 사용자와 팀을 만들고 특정 리소스에 대한 접근 권한을 제어할 수 있습니다.
Portainer Install
Docker에 ‘portainer_data’라는 이름의 볼륨을 생성
$ docker volume create portainer_data
Docker 볼륨을 생성 시 볼륨을 사용하면 컨테이너가 삭제되거나 재시작될 때도 데이터가 유실되지 않고 데이터베이스, 설정 파일 등 중요한 데이터를 안전하게 관리할 수 있도록 돕습니다.
Docker가 관리하는 공간에 저장되므로, 호스트 시스템의 파일 시스템 구조에 영향을 받지 않습니다.
저는 호스트와 다른 공간에서 관리하기 위해서 docker volume을 생성하였습니다.
Docker 환경에서 Portainer라는 이름의 컨테이너를 생성하고 실행
$ sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data portainer/portainer-ce:latest
-p 8000:8000 -p 9443:9443 : 호스트 시스템의 8000번 포트와 9443번 포트를 각각 컨테이너의 8000번 포트와 9443번 포트에 연결(bind)합니다. 호스트 시스템을 통해 Portainer의 웹 인터페이스에 접근할 수 있게 됩니다.
–name portainer : 실행되는 컨테이너의 이름을 ‘portainer‘로 지정합니다.
–restart=always : 컨테이너가 종료될 때마다 항상 재시작하도록 설정합니다. 시스템 재부팅 또는 Docker 프로세스 재시작 후에도 Portainer가 계속 실행되도록 보장합니다.
-v /var/run/docker.sock:/var/run/docker.sock : 호스트 시스템의 Docker 소켓을 컨테이너의 동일한 경로에 마운트합니다. 컨테이너 내부에서 호스트 시스템의 Docker 데몬에 접근할 수 있게 됩니다.
-v /data/portainer:/data : 호스트 시스템의 ‘/data/portainer’ 디렉토리를 컨테이너의 ‘/data’ 디렉토리에 마운트합니다. Portainer는 ‘/data’ 디렉토리에 여러 설정 파일과 데이터를 저장하므로, 이 디렉토리를 컨테이너 외부에 마운트함으로써 데이터를 영구적으로 보존할 수 있습니다.
초기 웹 서버 접근 시 회원가입 필요 너무 간단해서 넘기겠습니다.
웹 서버 접근 방법은 “Server IP:9000”
로그인 후 메인 페이지에 접근 시 local이라는 로컬 도커 환경이 정상적으로 연결되어 있는 것을 볼 수 있습니다.
로컬 도커에 접근을 해주시면 왼쪽 카테고리에 스택, 컨테이너, 이미지, 네트워크, 볼륨 등을 GUI 환경에서 쉽게 관리가 가능합니다.
Portainer를 사용하면 CLI에서 어렵게 관리하던 도커를 GUI에서 쉽게 관리할 수 있게 됩니다.
감사합니다.