EC2에 젠킨스 컨테이너 띄우기

송영호·2025년 3월 10일

DevOps

목록 보기
1/3
post-thumbnail

앞서, EC2의 개념과 EC2 보안그룹에 대해서 알아보았습니다.
이번 게시물에서는, EC2에 Docker를 활용해서, 젠킨스 컨테이너를 띄우는 방법에 대해서 다뤄보겠습니다.


1. EC2 보안그룹 설정

  • EC2 ➡️ 보안그룹 탭 클릭


  • 우측 상단의 보안 그룹 생성 클릭하고, 보안그룹명과 설명을 입력합니다.
  • 그리고, 인바운드 규칙에 SSH, HTTP, HTTPS 프로토콜을 통해 접속하기 위해 포트와 JENKINS 포트인 8090 포트를 추가해줍니다.


2. EC2 접속

  • ssh 프로그램은 mobaxterm을 사용
  • 좌측 상단의 Session 클릭
  • SSH -> Advanced SSH settings -> Use private key ✔️ -> 파일 버튼 클릭
  • EC2에 할당된 pem키를 업로드해서, EC2에 접속한다. (ubuntu)
  • 접속 완료 시, 아래와 같은 화면이 노출 됩니다.

3. EC2에 도커 설치(Ubuntu 기준)

  • sudo apt update ➡️ 패키지 목록 업데이트
  • sudo apt install apt-transport-https ca-certificates curl software-properties-common ➡️ Docker 필수 패키지 설치
  • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ➡️ Docker 공식 GPG키 추가
  • sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ➡️ 시스템에 Docker 저장소를 추가

    GPG 키란?
    ✅Docker의 공식 저장소에서 패키지를 설치할 때, 해당 패키지가 공식적으로 Docker에서 제공한 패키지인지 확인하기 위해 GPG 서명을 검사
    ✅Docker의 저장소에서 다운로드한 패키지가 변조되지 않았다는 것을 보장
    ✅시스템에서 안전하게 Docker를 설치할 수 있도록 한다.
    ✅GPG 키가 없으면, Docker 저장소에서 설치를 차단할 수 있음.

  • sudo apt install docker-ce ➡️ Docker 설치
  • Docker 서비스 상태 확인 및 start
    sudo systemctl start docker
    sudo systemctl enable docker
    sudo systemctl status docker
  • docker --version ➡️ Docker version 확인
  • 버전 정보 출력되면, 설치 완료❗(Docker version 28.0.1, build 068a01e)

4. 젠킨스 컨테이너 실행

  • docker run ➡️ 도커 컨테이너 실행

  • -d ➡️ 백그라운드 환경에서 컨테이너 실행

  • -v /var/run/docker.sock:/var/run/docker.sock ➡️ 호스트의 도커 실행 파일과 볼륨 설정

  • -v /usr/lib/jvm/java-21-openjdk-amd64:/usr/lib/jvm/java-21-openjdk-amd64 ➡️ 호스트의 jdk 폴더와 볼륨 설정

  • -p 8090:8080 ➡️ 호스트의 8090 포트로 접근 시, 컨테이너의 8080 포트로 호스팅(젠킨스 기본 포트는 8080)

  • --add-host=host.docker.internal:host-gateway ➡️ 컨테이너에서 호스트에 접근 가능하도록 설정

  • jenkins/jenkins:lts-jdk21 ➡️ 실행할 Jenkins 이미지(이미지가 없을 경우, 자동으로 pull / 이미지가 존재할 경우, 해당 이미지를 활용해 컨테이너를 run)

    docker run -d \
      --name jenkins \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v /usr/lib/jvm/java-21-openjdk-amd64:/usr/lib/jvm/java-21-openjdk-amd64 \
      --add-host=host.docker.internal:host-gateway \
      -p 8090:8080 \
      jenkins/jenkins:lts-jdk21

컨테이너 상태 확인

docker ps
#출력
bdba2e0d7c0a   jenkins/jenkins:lts-jdk21   "/usr/bin/tini -- /u…"   4 days ago   Up 4 days             50000/tcp, 0.0.0.0:8090->8080/tcp, [::]:8090->8080/tcp   jenkins

5. 젠킨스 초기 설정 및 접속

젠킨스 접속 및 관리자 패스워드 설정

  • {host IP}:8090으로 접속
  • 접속 시, 아래와 같은 화면이 노출됩니다.
  • 관리자 password 조회 및 Jenkins 입력창에 입력
    docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • install suggested plugins 선택
  • Getting Started 화면에서, 필수 플러그인이 설치될때 까지 대기
  • Admin 계정 정보 입력 및 JENKINS URL 지정

6. 접속 및 설정 완료

profile
BACKEND 개발자

0개의 댓글