Docker & Kubernetes
[Docker] 개념 및 사용을 위한 Portainer 설치
Project_S
2023. 4. 13. 21:24
반응형
* Docker 관련 개념 정리 (이 정도만 알아도 도커 쓰는데는 큰 문제 없다고 판단)
용어 | 개념 |
Container | * 격리 환경에서 애플리케이션 실행을 위한 패키지 - 호스트와 분리된 별도의 시스템을 갖추며, Docker에 의해 관리됨 |
Docker | * 컨테이너화 된 앱을 생성, 배포하는 오픈소스 플랫폼 - 컨테이너를 통해 적절히 앱을 패키징하여 생성하며 빠른 배포, 실행을 수행 |
Docker-compose | * Docker용 file(yaml, yml)을 사용하여 오케스트레이션 된 컨테이너를 쉽게 실행하도록 지원하는 도구 |
YAML (YML) | * 문서나 데이터의 구조를 명시하는데 집중된 MarkUp보다 데이터 중심으로 사용자 친화적으로 처리하는 데이터 형식 - Doker Compose, Kubernetes, Flutter, Spring boot 등, 프로젝트에서 설정 파일을 정의할 때 자주 사용 |
Stack | * Docker Compose 파일로 정의된 서비스 그룹 - 여러 서비스가 하나의 스택으로 정의, 관리 및 연결이 용이하고 배포가 빠르고 편함 |
Image | * Docker 컨테이너를 만들기 위한 실행 가능 패키지 - 컨테이너의 실행에 필요한 모든 것을 제공하는 패키지로 YAML이나 Docker Hub의 이미지 레지스트리에서 다운로드 |
App Template | * 사전 정의된 설정이 존재하는 Docker file 포함 템플릿 - Ubuntu, NodeJS, MYSQL 등의 준비된 애플리케이션 컨테이너 템플릿 |
* Portainer
- Docker 및 Kubernetes를 위한 경량화 된 관리 도구로서, 웹 기반 사용자 인터페이스
- 무료로 배포하여 사용할 수 있으며 GUI 방식으로 컨테이너 관리가 가능
* Portainer 설치
1) 필자의 설치 환경
- Ubuntu 22.04 (AWS EC2)
2) 설치 코드
apt update
apt upgrade
# apt를 최신 버전으로 조정
curl -fsSL https://get.docker.com -o get-docker.sh # docker 최신 버전 설치 (타 설치 방법이 존재할 수 있음)
chmod 777 ./get-docker.sh # 다운 시, 실행 권한이 없으므로 적절히 조절
./get-docker.sh
docker -v # 도커 정상설치 확인
# Docker version 23.0.2, build 569dd73
systemctl enable docker.service
systemctl enable containerd.service
# 도커 및 컨테이너 서비스 서버 재구동 시, 자동 시작되도록 설정
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Docker compose(yaml, yml)파일을 통해 컨테이너 정의를 위한 도구 설치
chmod +x /usr/local/bin/docker-compose # compose 실행 권한 확보
docker-compose -v # compose 정상 설치 확인
# docker-compose version 1.29.2, build 5becea4c
systemctl start docker # 도커 스타트
docker run hello-world # 샘플 컨테이너 실행
docker volume create portainer_data # Portainer가 설치될 볼륨 확보
sudo docker run -d -p 18000:8000 -p 19000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
# 도커 기본 포트 8000(sub), 9000(main) 포트 변경 -> 18000(sub), 19000(main)
docker ps # 도커 포트 설정 상태 확인 - 9443 (HTTPS) 및 이외 변경한 포트(HTTP) 확인 가능
systemctl status docker # 도커 run 상태 확인
docker rmi --force hello-world # 샘플 컨테이너 삭제
systemctl start docker # 도커 재시작
docker restart portainer # 포테이너 재시작
# 위 설정 후 브라우저에서 변경한 main 포트인 http://서버IP:19000 으로 접속
# 만약 접속이 안된다면, 해당 서버 reboot 후 진행
* 주의 사항 : 필자는 AWS 환경에서 해당 작업을 수행 했기 때문에 당연히 Security Group을 설정해 줬음
* Portainer 접속
- 최초 접속 시, 계정 설정 창 확인 (설정 후 create user로 진행)
* Portainer 로그인 후
1) Docker Control
2) Local Docker 연결 시, 정상 구성 확인
3) Stacks에서 Build 환경 확인
반응형