개요
Jenkins를 활용해서 CI/CD 환경을 구축해볼 생각인데, Ec2안에 Docker를 설치했으니 이를 활용해서 진행해볼 계획이다. 하나하나 차근차근 모르는 것 찾아보면서 해보자!
CI/CD와 Jenkins에 대한 내용 부터 알아보고 정리해봤다.
도커를 사용한 이유는, 도커를 사용하지 않고 젠킨스를 우분투에 설치했을 때 설정해줘야 할 것들이 어마어마하게 많다고 한다. 하지만 도커를 사용한다면 간단한 명령어를 통해 젠킨스 설치와 서버에 띄우는 것이 가능해진다!
1. Jenkins 설치
1-1. Jenkins 이미지 다운
Jenkins LTS(Long Term Support) 버전의 이미지를 다운받는다.
docker pull jenkins/jenkins:lts
*LTS
-> 장기적으로 지원한다는 뜻!
1-2. Jenkins 컨테이너 실행
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
: docker run
-> Docker 컨테이너를 실행하기 위한 명령어이다.
: -d
-> 컨테이너를 백그라운드에서 실행한다. 얘가 없으면 로그가 현재 터미널에 출력된다.
: --name jenkins
-> 컨테이너 이름을 jenkins로 지정한다.
: -p 8080:8080
-> 포트 매핑 옵션이다.
-> 호스트 : 컨테이너 형식으로 작성된다.
-> 호스트(Ec2)의 8080포트로 들어오는 요청을 Jenkins 컨테이너의 8080 포트로 전달한다.
* 포트매핑
-> Docker 컨테이너 내부의 네트워크 포트와 호스트(여기서는 Ec2)의 네트워크 포트를 연결하는 작업이다.
-> 이를 통해 외부 네트워크(API 클라, 브라우저)에서 컨테이너 내부에서 실행 중인 애플리케이션에 접근할 수 있다.
-> Docker 컨테이너는 기본적으로 격리된 네트워크 환경에서 실행되기 때문에 컨테이너 내부에서 애플리케이션이 실행 중이더라도 외부에서는 직접 접근이 불가하다.
-> 하지만 포트 매핑을 설정하면, 컨테이너의 네트워크를 호스트의 네트워크와 연결해 외부에서 접근할 수 있도록 한다.
: -p 50000:50000
-> Jenkins의 빌드 에이전트(Agent)와 통신에 필요한 포트를 설정한다.
: -v jenkins_home:/var/jenkins_home
-> 볼륨 마운트
-> 호스트 디렉터리 : 컨테이너 디렉터리 형식이다.
-> EC2 인스턴스의 jenkins_home 디렉터리가 컨테이너 내부의 /var/jenkins_home 디렉터리로 마운트된다.
: jenkins/jenkins:lts
-> 실행할 Dockeer 이미지와 태그를 지정하나.
* 볼륨 마운트
-> Docker 컨테이너는 삭제되거나 종료되면 내부데이터도 사라진다.
-> 이를 막고자, 데이터를 보존하기 위해 따로 볼륨 마운트롤 사용한다.
-> 호스트 디렉터리와 컨테이너 내부의 특정 디렉터리를 연결하면, 컨테이너가 삭제되더라도 데이터는 호스트 디렉터리에 남아 있다.
1-3. 흐름 정리
1) Docker가 Jenkins/jenkins:lts 이미지를 기반으로 새로운 컨테이너를 생성
2) 컨테이너 이름 = jenkins로 지정되고, 8080/50000 포트가 EC2의 동일한 포트로 매핑된다.
3) Jenkins 데이터가 저장될 디렉터리(/var/jenkins_home)는 Docker 호스트의 jenkins_home 볼륨과 연결됨.
4) Jenkins 컨테이너가 백그라운드에서 실행되며, EC2의 Public IP와 포트 8080으로 접근할 수 있게 된다.
2. Jenkins 접속 및 초기 설정
Jenkins 접속전 인바운드 규칙에 사용자 지정 TCP 유형으로 8080포트를 열어줘야 한다.
2-1. 접속
http://<EC2_IP_ADDRESS>:8080으로 접속한다.
접속하면 아래와 같은 페이지가 나타난다.
Password 항목에 적을 비밀번호를 얻기 위해 터미널에 jenkins 컨테이너 로그를 입력한다.
docker logs <jenkins 컨테이너 Name>
저 네모박스안에 비밀번호가 적혀있다. 저거를 입력해주면된다.
2-2. 웹페이지 세팅
추천 플러그인을 선택했다.
선택하면 아래와 같이 자동으로 설치를 진행한다.
그 뒤 계정설정과, Jenkins Url을 입력하면 Jenkins 대시보드 화면이 다음과 같이 나온다.
이상, Docker를 활용한 Jenkins 설치 끝!!
참고
https://curiousjinan.tistory.com/entry/aws-ec2-docker-jenkins-setup
'Infra > Docker적용' 카테고리의 다른 글
[Docker 적용] SpringBoot + DockerFile + Docker Compose 적용 (0) | 2025.01.20 |
---|---|
[Docker 적용] EC2 인스턴스(ubuntu) 환경에 docker compose 설치 (1) | 2025.01.20 |
[Docker 적용] Docker MySQL 설치 (1) | 2025.01.08 |
[Docker적용] EC2에 Docker 설치 (0) | 2025.01.07 |