Jenkins 설정 초기화 문제

개요

젠킨스 Admin 페이지의,

  • 접속 > 초기 비밀번호 입력 > admin id/pw 생성 > 플러그인 설치 > 젠킨스 admin main

까지 이미 마친 상황이었다. 그런데, 젠킨스에 다시 접속하니까 초기 비밀번호 입력부터 다시 시작되었다.


분명히 모든 설정을 끝냈는데 다시 하는게 뭔가 이상했다.

문제가 있다 생각하고 연구를 해보았다.



볼륨 마운트


Docker 볼륨이란?

  • Docker 볼륨은 컨테이너 외부에 데이터를 저장하는 메커니즘으로, 컨테이너의 수명과 독립적으로 데이터를 유지합니다. 이는 컨테이너가 삭제되더라도 데이터가 보존되며, 다른 컨테이너에서 재사용할 수 있습니다.

특징

  1. 데이터 덮어쓰기

    • 컨테이너의 디렉토리에 이미 데이터가 있는 상태에서 빈 볼륨을 마운트하면, 기존 데이터가 볼륨에 복사됩니다. 반대로, 볼륨에 데이터가 있으면 컨테이너의 해당 디렉토리 내용이 가려집니다.
  2. 데이터 공유

    • 동일한 볼륨을 여러 컨테이너에 마운트하여 데이터를 공유할 수 있습니다. 단, 동시에 쓰기 작업을 수행하는 경우 데이터 충돌에 주의해야 합니다.
  3. 백업 및 복원: 볼륨은 호스트 시스템의 디렉토리에 저장되므로, 해당 디렉토리를 백업하여 데이터를 보호할 수 있습니다.



문제는 볼륨 마운트였다.


  • 컨테이너의 문제점:
컨테이너 생성 → 데이터 저장 → 컨테이너 삭제 →  모든 데이터 사라짐

  • 볼륨 마운트
컨테이너 생성 → 데이터 저장 → 컨테이너 삭제 → 데이터는 호스트에 보존
새 컨테이너 생성 → 기존 데이터 그대로 사용

즉, 기존에는 볼륨 마운트를 적용하지 않아서 젠킨스 초기 설정 정보가 모두 날아갔고

다시 접속해보니 처음부터 다시 시작한 것이다.


기존 컨테이너 실행 명령어

docker run -d \ 
--name jenkins-dood \ 
-p 8080:8080 \ 
-v /var/run/docker.sock:/var/run/docker.sock \ 
jenkins-dood:v0.06

볼륨 마운트 적용한 컨테이너 실행 명령어

docker run -d \
  —name jenkins-dood \
  -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v jenkins_home:/home/hello \    ##볼륨 마운트 적용 명령어
  xotjd794613/jenkins-dood:v0.06

단순한 한줄이지만 컨테이너에서 생성된 데이터를 해당 디렉토리에 저장해놓고

컨테이너가 다시 실행되더라도 필요한 데이터를 지정한 디렉토리에서 꺼내서 사용한다.

문제 해결

위의 명령어로 컨테이너를 다시 실행하고 젠킨스에 접속했다. 그리고 모든 초기설정을 마쳤다.

Pasted image 20250529221139.png

  • 브라우저 캐시 삭제 후 다시 접속하니 정상적으로 Jenkins 로그인 화면이 나온다.

+

docker hub → git hub 이미지 저장소 이전 후,

🔑 Docker Image를 Git repo로 관리하기


git에서 새로 이미지를 받더라도,

정상적으로 데이터를 저장하고 있는 모습이다.

Pasted image 20250602113532.png