728x90
목표
- 코드를 Git에 푸시하면, 자동으로 Docker로 빌드되고, Jenkins가 배포까지 해주는 시스템 구축
✅ 도커(Docker)란?
🧠 개념
- 도커는 가상 머신보다 가볍고 빠른 가상화 도구
- 애플리케이션을 컨테이너 안에 포장해서, 어디서든 똑같이 실행되게 해 준다.
- 개발 -> 테스트 -> 운영 서버까지 환경을 보장
💡비유
| 앱을 실행하려면 라이브러리나 설정이 필요,
| Docker는 앱 + 실행 환경을 통째로 포장해서 다른 컴퓨터에서도 바로 실행 가능하게 만드는 기술
✅ 젠킨스(Jenkins)란?
🧠개념
- jenkins는 자동화 도구(CI/CD 툴)
- 코드를 푸시하면 -> 테스트하고 -> Docker로 빌드하고 -> 서버에 배포까지 자동으로 해준다.
- 직접 명령어 안쳐도 되도록 자동화 스크립트(Jenkinsfile)로 관리
✅ 개발 구조
├── frontend (Flutter)
├── backend (FastAPI)
├── docker-compose.yml
└── Jenkinsfile
✅ Docker 설치
우선 EC2 접속(zsh 사용 중)
ssh -i 키파일이름.pem ubuntu@PUBLIC_IP
- 갑자기 안 돼서 권한 제어를 다시 해주었다
chmod 600 키파일이름.pem
패키지 업데이트
sudo apt update && sudo apt upgrade -y
- 설치 전에 업데이트, 업그레이드해주자
설치, 공식 홈페이지 참고했다.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 현재 구조는 EC2 인스턴스 위에 Docker가 설치된 상태
- Jenkins는 Docker 컨테이너로 실행 예정
설치 확인
sudo docker
✅ Portainer 설치
다음은 portainer를 설치했다.
portainer는 도커 모니터링하고 관리하기 위한 도구이다.
1. docker 볼륨 생성
sudo docker volume create portainer_data
2. docker 컨테이너로 portainer 설치
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always
3. 다음으로 ec2에 ufw설정으로 9443 port를 열어 주었다
sudo ufw allow 9443/tcp
- /tcp를 붙이지 않으면 모든 프로토콜이 열리게 된다
- 실수했을 경우 삭제
sudo ufw deny port번호/tcp
- 마찬가지로 /tcp를 붙이지 않으면 모든 프로토콜을 닫는다.
4. port 설정 후 확인하기
sudo ufw status
# 또는
sudo ufw status numbered
- 설치했으면 ec2 public_ip나 도메인 + :9443/#!/home > 왜인지 모르겠는데 중간에 /#!/이라는 path가 붙었다, 수정 예정!
- 들어가 보면 docker를 GUI로 모니터링할 수 있다
728x90
'프로젝트' 카테고리의 다른 글
| 인프라 초기 세팅(Jenkins) (4) | 2025.07.23 |
|---|
댓글