Portainer를 설치하고 컨테이너를 관리하는 방법
Portainer는 Docker 컨테이너를 관리하기 위한 오픈 소스 웹 기반 관리 도구입니다.
Portainer를 사용하면 사용자는 직관적인 사용자 인터페이스를 통해 Docker 호스트, 컨테이너, 이미지, 네트워크, 볼륨 등을 관리할 수 있습니다. 일반적으로 개발자, 시스템 관리자, DevOps 엔지니어 등이 Docker 환경을 관리하고 모니터링하는 데 사용됩니다.
Portainer의 기능
- 시각적인 인터페이스 : Docker의 명령줄 인터페이스(CLI) 대신 웹 기반 인터페이스를 통해 Docker 리소스를 관리할 수 있습니다.
- 컨테이너 관리 : 컨테이너의 생성, 시작, 중지, 제거 등을 수행할 수 있습니다.
- 이미지 관리 : Docker 이미지를 검색하고 다운로드하며, 로컬 및 리모트 저장소에서 이미지를 관리할 수 있습니다.
- 스택 및 서비스 관리 : Docker Compose 파일을 사용하여 스택 및 서비스를 정의하고 배포할 수 있습니다.
- 네트워크 및 볼륨 관리 : 네트워크 및 볼륨을 생성하고 관리하여 컨테이너 간의 통신 및 데이터 저장을 관리할 수 있습니다.
- 인증 및 권한 관리 : 다중 사용자 지원 및 역할 기반의 인증 및 권한 관리를 통해 팀 내에서 협업 및 보안을 관리할 수 있습니다.
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의 웹 인터페이스에 대한 포트입니다.
3. Portainer 웹 인터페이스 접속
웹 브라우저에서 http://호스트IP:9000 주소로 접속하여 Portainer에 로그인합니다.
초기 사용자를 생성하고 로그인합니다.
https://호스트IP:9443
4. Docker 환경 관리
Portainer의 웹 인터페이스를 통해 Docker 컨테이너, 이미지, 네트워크, 볼륨 등을 관리할 수 있습니다. 필요에 따라 새로운 컨테이너를 생성하고 실행하거나 이미지를 검색하고 다운로드할 수 있습니다.
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
'리눅스' 카테고리의 다른 글
Minikube의 주요 명령 (0) | 2024.04.11 |
---|---|
우분투에서 Certbot을 사용하여 Let's Encrypt SSL 인증서를 생성하는 방법 (0) | 2024.03.28 |
NGINX 및 PHP-FPM에서 파일 업로드 크기를 늘리는 방법 (0) | 2024.03.22 |
우분투에서 Docker 컨테이너 내에서 systemd를 실행하는 방법 (0) | 2024.03.22 |
우분투에서 cron 작업에 대한 로그를 별도의 파일로 분리하는 방법 (0) | 2024.03.20 |