본문 바로가기

리눅스

Portainer를 설치하고 컨테이너를 관리하는 방법

728x90

Portainer를 설치하고 컨테이너를 관리하는 방법

Portainer는 Docker 컨테이너를 관리하기 위한 오픈 소스 웹 기반 관리 도구입니다.

Portainer를 사용하면 사용자는 직관적인 사용자 인터페이스를 통해 Docker 호스트, 컨테이너, 이미지, 네트워크, 볼륨 등을 관리할 수 있습니다. 일반적으로 개발자, 시스템 관리자, DevOps 엔지니어 등이 Docker 환경을 관리하고 모니터링하는 데 사용됩니다.

Portainer의 기능

  1. 시각적인 인터페이스 : Docker의 명령줄 인터페이스(CLI) 대신 웹 기반 인터페이스를 통해 Docker 리소스를 관리할 수 있습니다.
  2. 컨테이너 관리 : 컨테이너의 생성, 시작, 중지, 제거 등을 수행할 수 있습니다.
  3. 이미지 관리 : Docker 이미지를 검색하고 다운로드하며, 로컬 및 리모트 저장소에서 이미지를 관리할 수 있습니다.
  4. 스택 및 서비스 관리 : Docker Compose 파일을 사용하여 스택 및 서비스를 정의하고 배포할 수 있습니다.
  5. 네트워크 및 볼륨 관리 : 네트워크 및 볼륨을 생성하고 관리하여 컨테이너 간의 통신 및 데이터 저장을 관리할 수 있습니다.
  6. 인증 및 권한 관리 : 다중 사용자 지원 및 역할 기반의 인증 및 권한 관리를 통해 팀 내에서 협업 및 보안을 관리할 수 있습니다.

Portainer는 사용이 간편하고 무료로 제공되며, Docker를 처음 사용하는 사용자부터 고급 사용자까지 다양한 사용 사례에 적합합니다.

1. Docker가 설치된 호스트 준비

Portainer를 실행할 Docker 호스트를 준비합니다. 호스트에는 Docker가 설치되어 있어야 합니다.

$ docker version
Client: Docker Engine - Community
 Version:           25.0.0
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        e758fe5
 Built:             Thu Jan 18 17:09:49 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.0
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       615dfdf
  Built:            Thu Jan 18 17:09:49 2024
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.6.27
  GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
 runc:
  Version:          1.1.11
  GitCommit:        v1.1.11-0-g4bccb38
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2. Portainer 컨테이너 실행

Portainer 컨테이너를 실행합니다.

docker volume create portainer_data
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
  • docker compose 파일
vim docker-compose.yml
version: '3.8'
services:

  portainer:
    image: portainer/portainer-ce:latest
    restart: always
    container_name: portainer
    volumes:
      - /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    ports:
      - "8000:8000"
      - "9443:9443"
    networks:
      - portainer_net

volumes:
  portainer_data:

networks:
  portainer_net:
    name: portainer_net

이 명령어는 portainer_data라는 볼륨을 생성하고 Portainer 컨테이너를 실행합니다. 컨테이너는 호스트의 Docker 소켓에 연결되어 호스트의 Docker 환경을 관리할 수 있습니다. 포트 9000은 Portainer의 웹 인터페이스에 대한 포트입니다.

728x90

3. Portainer 웹 인터페이스 접속

웹 브라우저에서 http://호스트IP:9000 주소로 접속하여 Portainer에 로그인합니다.

초기 사용자를 생성하고 로그인합니다.

https://호스트IP:9443

Portainer_Web_GUI_1

4. Docker 환경 관리

Portainer의 웹 인터페이스를 통해 Docker 컨테이너, 이미지, 네트워크, 볼륨 등을 관리할 수 있습니다. 필요에 따라 새로운 컨테이너를 생성하고 실행하거나 이미지를 검색하고 다운로드할 수 있습니다.

Portainer_Web_GUI_2
Portainer_Web_GUI_3

5. Portainer Agent 컨테이너 실행

Portainer Agent 컨테이너를 실행합니다.

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:2.19.4
  • docker compose 파일
vim docker-compose.yml
version: '3.8'
services:

  portainer_agent:
    image: portainer/agent:2.19.4
    restart: always
    container_name: portainer_agent
    volumes:
      - /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    ports:
      - "9001:9001"

networks:
  portainer_net:
    name: portainer_net

 

참고URL

Portainer Documentation : Install Portainer CE with Docker on Linux

Portainer Documentation : Initial setup

 

728x90