Docker로 Jenkins 설치하기: 단계별 가이드

2024. 10. 4. 01:49·데브옵스/CICD
728x90
반응형

2024.09.30 - [데브옵스/Docker] - Ubuntu에 Docker 설치
 

Ubuntu에 Docker 설치

1. 들어가며1.1 Docker 란?Docker는 애플리케이션을 개발, 배포, 실행하기 위한 오픈소스 플랫폼입니다. 컨테이너라는 격리된 환경에서 애플리케이션을 패키징하고 실행할 수 있게 해 줍

bigdwarf.blog


1. 들어가며

1.1 Jenkins와 Docker의 개요

  • Jenkins : 소프트웨어 개발에서 지속적 통합 및 지속적 배포(CI/CD)를 자동화하는 강력한 오픈소스 도구
  • Docker :  애플리케이션을 컨테이너 화하여 일관된 환경에서 실행할 수 있게 해주는 플랫폼

이 글에서는 Ubuntu 24.04 LTS 환경에서 Docker를 사용하여 Jenkins를 설치하고 설정하는 방법을 단계별로 안내합니다.

1.2 왜 Docker로 Jenkins를 설치하는가?

Docker를 사용하여 Jenkins를 설치하면 환경 일관성, 쉬운 업그레이드, 빠른 배포 및 확장성 등 여러 이점을 얻을 수 있습니다. 또한, 호스트 시스템에 직접 설치하는 것보다 격리된 환경에서 Jenkins를 실행할 수 있어 보안성도 향상됩니다.


2. 사전 준비

2.1 시스템 요구사항

  • 최소 2GB RAM (4GB 이상 권장) 
  • 10GB 이상의 여유 디스크 공간

2.2 Docker 및 Docker Compose 설치 확인

  • 다음 명령어로 Docker가 정상적으로 설치되었는지 확인
docker --version
docker run hello-world

  • Docker Compose도 설치되어 있는지 확인
docker-compose --version

  • Dokcer Compose가 설치가 안되어있을 경우
더보기

1. Docker Compose 최신 버전 다운로드

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. Docker Compose 파일에 실행 권한 부여

chmod +x /usr/local/bin/docker-compose

3. 심볼릭 링크 생성 (선택 사항)

만약 docker-compose 명령어가 /usr/local/bin에 없을 경우, 심볼릭 링크를 만들어줄 수 있습니다.

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

3. Host 시스템에 컨테이너 데이터 디렉토리 생성

3.1 디렉토리 생성 및 권한 설정

  • Jenkins 데이터 디렉토리 생성 (원하는 폴더 위치에 생성해주시면 됩니다.)
mkdir -p /home/user/jenkins_home
  • 이글에선 아래와 같이 생성하였습니다.
mkdir -p /home/junu/docker_data/jenkins
chown -R junu:junu /home/junu/docker_data

4. Jenkins 설치 방법 1: Docker 명령어 사용

4.1 Jenkins Docker 이미지 다운로드

  • Java 버전에 따라 버전을 선택해서 설치해주시길 바랍니다.
  • 다음 명령어로 Jenkins LTS 이미지를 다운로드
docker pull jenkins/jenkins:lts

4.2 Jenkins 컨테이너 실행

docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /home/junu/docker_data/jenkins:/var/jenkins_home \
  jenkins/jenkins:lts

4.3 포트 매핑 및 볼륨 설정 설명 

  • -p 8080:8080: Jenkins 웹 인터페이스용 포트
  • -p 50000:50000: Jenkins 에이전트 통신용 포트
  • -v /home/junu/docker_data/jenkins:/var/jenkins_home: 호스트의 Jenkins 데이터 디렉토리를 컨테이너에 마운트
  • -v /var/run/docker.sock:/var/run/docker.sock: 호스트의 Docker 소켓을 컨테이너에 마운트 (선택사항)

이렇게 구성하면 Jenkins 데이터의 안전한 보관과 효율적인 관리가 가능해지며 Docker의 이점을 최대한 활용할 수 있습니다.

4.4 Jenkins 웹 접속

  • http://IP:8080 접속 (위에서 설정한 포트)


5. Jenkins 설치 방법 2: Docker Compose 사용

Docker Compose를 사용하면 여러 컨테이너를 쉽게 관리할 수 있으며, 설정을 파일로 버전 관리할 수 있습니다.

5.1 docker-compose.yml 파일 작성

  • docker-compose.yml 작성
vi docker-compose.yml
version: '3.9'
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins # 컨테이너 이름을 명시적으로 표시하기 위해 추가
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/junu/docker_data/jenkins:/var/jenkins_home

5.2 Docker Compose로 Jenkins 실행

  • 다음 명령어로 Jenkins를 실행
docker-compose up -d
  • Docker Compose Down 명령
더보기

Docker Compose Down 명령

docker-compose down

Docker Compose Down 추가 옵션

  • --volumes: 정의된 볼륨도 함께 삭제하고 싶을 때 사용합니다. (주의: 데이터가 삭제될 수 있으므로 중요 데이터는 백업하는 것이 좋습니다.)
docker-compose down --volumes
  • --rmi: 사용한 이미지를 제거하고 싶을 때 사용할 수 있습니다.
    • local: 프로젝트에서 생성한 이미지만 삭제
    • all: 모든 이미지를 삭제
docker-compose down --rmi all

이렇게 하면 docker-compose up으로 올린 서비스를 안전하게 중지할 수 있습니다.

5.3 Jenkins 웹 접속

  • http://IP:8080 접속 (위에서 설정한 포트)


6. Jenkins 초기 설정

6.1 관리자 비밀번호 확인

  • 다음 명령어로 초기 관리자 비밀번호를 확인
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • 아래에 콘솔 화면에 초기 비밀번호를 확인하실 수 있습니다.

6.2 플러그인 설치 옵션

  • Install suggested plugins 클릭 (추후 필요한 플러그인은 따로 설치하실 수 있습니다.)

6.3 관리자 계정 생성 및 Jenkins URL을 설정

6.4 계정 생성 및 설치 완료


7. 마치며

이 가이드를 통해 Ubuntu 24.04 LTS에서 Docker를 사용하여 Jenkins를 설치하고 기본적인 설정을 완료할 수 있습니다. 추가적인 설정이나 고급 기능은 프로젝트의 요구사항에 따라 적용하시기 바랍니다.


728x90
반응형

'데브옵스 > CICD' 카테고리의 다른 글

[Docker] Jenkins와 GitHub 연동하기: 지속적 배포(Continuous Deployment, CD)  (4) 2024.10.21
[Docker] Jenkins와 GitHub 연동하기: 지속적 통합(Continuous Integration, CI)  (0) 2024.10.05
'데브옵스/CICD' 카테고리의 다른 글
  • [Docker] Jenkins와 GitHub 연동하기: 지속적 배포(Continuous Deployment, CD)
  • [Docker] Jenkins와 GitHub 연동하기: 지속적 통합(Continuous Integration, CI)
키큰난쟁이
키큰난쟁이
개발 블로그
    반응형
    250x250
  • 키큰난쟁이
    키큰난쟁이의 놀이터
    키큰난쟁이
  • 전체
    오늘
    어제
    • 분류 전체보기 (38)
      • AI (1)
        • AI 응용 (1)
      • 프로그래밍 언어 (5)
        • Java (3)
        • PHP (1)
        • JavaScript (1)
      • 프레임워크 (3)
        • Spring (3)
      • 서버 (8)
        • Web Server (2)
        • WAS (2)
        • Hypervisor (4)
      • 데이터베이스 (5)
        • MySQL•MariaDB (2)
        • Oracle (1)
        • Cubrid (2)
      • 운영체제 (4)
        • Linux (4)
      • 클라우드 (1)
        • Ncloud (1)
      • 데브옵스 (7)
        • VCS (2)
        • CICD (3)
        • Docker (2)
      • 지식 (2)
        • Web (2)
      • 기타 (2)
        • 일상 (2)
  • 블로그 메뉴

    • 일상
  • 링크

    • Instagram
    • github
  • 공지사항

    • 라이믹스 → 티스토리 이사
  • 인기 글

  • 태그

    DBMS
    마리아디비
    CI/CD
    jenkins
    java
    PROXMOX
    mariadb
    devops
    깃허브
    우분투
    자바
    db
    애플실리콘
    젠킨스
    docker
    프록시모스
    도커
    GitHub
    리눅스
    Apple Silicon
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
키큰난쟁이
Docker로 Jenkins 설치하기: 단계별 가이드
상단으로

티스토리툴바