도커로 Jenkins 설치
Docker Desktop으로 윈도우 환경으로 Jenkins를 설치할 것이다.
참고 내용은 아래의 git 메뉴얼대로 설치를 진행하였다.
jenkins 이미지를 가져오기
docker pull jenkins/jenkins:lts-jdk21
docker images -aIMAGE ID DISK USAGE CONTENT SIZE EXTRA
jenkins/jenkins:lts-jdk21 7004d07dbcdc 811MB 292MBjenkins 실행하기
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk21각 명령어 뜻은 다음과 같다
run: 이미지 entry 실행-p: 포트 할당 구분자로 클론(:) 기준으로 앞부분은 host 포트이고 뒷 부분이 컨테이너 포트로 나눠진다. jenkins 는 8080, 50000 두 개의 포트를 사용하므로-p옵션이 2개 필요하다.--restart=on-failure: 컨테이너에서 fail 발생한 경우 restart 시킨다는 의미이다.jenkins/jenkins:lts-jdk21: 본인의 이미지 또는 외부으로부터 jenkins/jenkins 이미지를 가져오고 lts-jdk21 태그를 찾아서 설치한다는 의미이다. lts 뜻은 long term support 약자로 장기 지원하는 버전이라는 뜻이다.
도커를 실행 후 마지막에는 key 를 출력하여 서비스가 동작 중일 것이다.
[LF]>
[LF]> *************************************************************
[LF]> *************************************************************
[LF]> *************************************************************
[LF]>
[LF]> Jenkins initial setup is required. An admin user has been created and a password generated.
[LF]> Please use the following password to proceed to installation:
[LF]>
[LF]> 116920f56d894715878ec137aa39e910
[LF]>
[LF]> This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
[LF]>
[LF]> *************************************************************
[LF]> *************************************************************
[LF]> *************************************************************브라우져의 localhost:8080 입력하여 해당 키를 입력하여 설치를 진행해주도록 한다.
localhost:8080 브라우져 접속

출력한 키로 입력하여 continue 버튼으로 진행한다.
커스텀 설치 - Install suggested plugins

plugin 선택 설치할 것인지 물어보고 있다.
설치 진행 중..

어드민 사용자 생성

어드민 사용자를 생성할 것인지 물어본다. 필요가 없는 경우 Skip and continue as admin 으로 무시할 수 있다. 이 경우에는 초기 jenkins가 제공한 초기화 패스워드가 admin 계정의 패스워드로 계정이 생성된다.
Jenkins URL 설정

BUILD_URL 의 환경 변수 제공 주소로 사용할 것인지 물어본다.
선택하지 않고 싶다면 Not now 선택해서 무시해줘도 된다.

Welcome Jenkins

이제 본격적으로 젠킨스를 사용할 수 있다.
설치 jdk 버전 살펴보기
다른 터미널을 열어 docker ps -a 명령어로 조회하여 해당 컨테이너 쉘로 접속 해 변수를 살펴보자.
컨테이너 조회
docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
390db0d83ce1 jenkins/jenkins:lts-jdk21 "/usr/bin/tini -- /u…" 25 minutes ago Up 25 minutes 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 0.0.0.0:50000->50000/tcp, [::]:50000->50000/tcp gallant_rhodes
cefd606b4a33 jenkins/jenkins:lts-jdk21 "/usr/bin/tini -- /u…" 31 minutes ago Exited (130) 25 minutes ago laughing_sinoussi
5309b525c894 jenkins/jenkins:lts-jdk21 "/usr/bin/tini -- /u…" 31 minutes ago Exited (130) 31 minutes ago eager_chaum
1c18a0593f7a jenkins/jenkins:lts-jdk21 "/usr/bin/tini -- /u…" 44 minutes ago Exited (130) 31 minutes ago loving_dewdney컨테이너 접속 후 변수 살펴보기
docker exec -itu 0 390db0d83ce1 /bin/bashroot@390db0d83ce1:/# env
HOSTNAME=390db0d83ce1
JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental
JAVA_HOME=/opt/java/openjdk
JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals
COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log
PWD=/
JENKINS_SLAVE_AGENT_PORT=50000
JENKINS_VERSION=2.555.1
HOME=/root
LANG=C.UTF-8
JENKINS_UC=https://updates.jenkins.io
TERM=xterm
SHLVL=1
JENKINS_HOME=/var/jenkins_home
REF=/usr/share/jenkins/ref
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
root@390db0d83ce1:/# exit
exitJAVA_HOME 값이 /opt/java/openjdk 인 것을 살펴 볼 수 있다.
젠킨스 브라우져 JAVA_HOME 값 살펴보기

브라우져로 접속하여 Jenkins 관리 > 시스템 정보 > 환경 변수 탭을 살펴보면 할당된 JAVA_HOME 과 동일한 것을 살펴 볼 수 있다.
만약 다르다면 jdk installation 으로 컨테이너에 접속한 env 에서 살펴본 JAVA_HOME 값을 입력이 필요하지만, lts-jdk25 에서는 이 과정이 생략해도 된다는 것을 살펴 볼 수 있다.
Docker Volume 정보 저장하기
앞에서 설명한 Docker 는 서비스를 재시작하면 젠킨스 설정이 모두 제거되어 처음부터 다시 시작하므로 볼륨을 설정해 영속성을 유지하는 것이 필요하다.
volume 생성
docker volume create jenkins_homevolume 확인하기
docker volume lsDRIVER VOLUME NAME
local jenkins_homevolume 상세정보 보기
[
{
"CreatedAt": "2026-04-27T06:28:51Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data",
"Name": "jenkins_home",
"Options": null,
"Scope": "local"
}
]다음으로 jenkins docker 실행 시 다음 명령어로 실행한다.
docker run -d --name jenkins-server -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk21추가한 명령어를 살펴보자.
-d: 백그라운드로 실행할 수 있도록 데몬 옵션이다.--name: 해당 컨테이너 이름을 지정한 것으로 jenkins-server 편의상 입력하였다.-v jenkins_home:/var/jenkins_home: 앞서 생성한 볼륨을 연결한 것이다.
구분자 클론(:) 기준으로 앞 부분은 별칭자이며 뒷 부분은 컨테이너에서 불려올 호스트 디렉토리를 지정한다.
데몬으로 도커를 시작하였으므로 stop, start, restart 등 명령어를 수월하게 사용할 수 있다.
docker stop jenkins-server
docker start jenkins-server
docker restart jenkins-server