1. 현재 젠킨스 설정 및 데이터 백업
sudo docker cp <container_name>:/var/jenkins_home <backup_directory>
홈디렉토리 : /var/jenkins_home
설명 : Jenkins 컨테이너의 /var/jenkins_home 디렉토리를 로컬의 backup_directory에 복사
2. 젠킨스 컨테이너 중지 및 제거
docker stop <container_name>
docker rm <container_name>
3. 젠킨스 이미지 업데이트
sudo docker pull jenkins/jenkins:lts-jdk17
4. 젠킨스 컨테이너 재시작
sudo docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins jenkins/jenkins:lts-jdk17
sudo docker run -d -v /home/ec2-user/jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins jenkins/jenkins:lts-jdk17
sudo docker run -d -v /home/ec2-user/jenkins_home:/var/jenkins_home \
-p 8080:8080 -p 50000:50000 \
--restart=on-failure \
--name jenkins jenkins/jenkins:lts-jdk17
==================================================================================
jenkins_home은 호스트 측에 있는 Docker 볼륨을 의미하고, /var/jenkins_home은 컨테이너 내의 Jenkins 데이터 디렉토리를 의미합니다.
따라서, 호스트 측에 있는 jenkins_home이라는 이름의 볼륨이 컨테이너 내부의 /var/jenkins_home 디렉토리에 마운트됩니다. 이 마운트를 통해 Jenkins 데이터(설정 파일, 빌드 로그 등)가 호스트의 jenkins_home 볼륨에 저장되고, 컨테이너가 재시작되더라도 데이터는 그대로 유지됩니다.
요약:
• 호스트: jenkins_home 볼륨에 Jenkins 데이터가 저장됩니다.
• 컨테이너: /var/jenkins_home 디렉토리에 Jenkins 데이터가 저장됩니다.
• 마운트를 통해 Jenkins가 컨테이너에서 실행되더라도, 데이터는 호스트에 영구적으로 보관됩니다.
jenkins_home 볼륨이 이미 호스트에 존재한다면, 그 데이터가 컨테이너의 /var/jenkins_home에 연결되며, 새로운 Jenkins 설치가 아니라 기존의 데이터를 사용하게 됩니다.
-v jenkins_home:/var/jenkins_home은 호스트의 jenkins_home 볼륨을
컨테이너의 /var/jenkins_home 경로에 마운트하는 명령입니다.
sudo docker run -d \
-u root \
-v jenkins_home:/var/jenkins_home \
-p 8080:8080 \
-p 50000:50000 \
--restart=always \
--name jenkins \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts-jdk17
이 경우:
1. 호스트 측의 jenkins_home 볼륨은 Docker가 관리하는 영구적인 저장 공간입니다. 만약 호스트에 jenkins_home이라는 이름의 볼륨이 이미 존재한다면 그 안의 데이터가 사용되고, 만약 존재하지 않으면 Docker가 새로운 볼륨을 생성합니다.
2. **컨테이너 내부의 /var/jenkins_home**은 Jenkins의 기본 데이터 디렉토리로, Jenkins의 설정, 플러그인, 빌드 로그, 사용자 데이터 등이 여기에 저장됩니다.
중요한 점:
• 만약 호스트의 jenkins_home 볼륨에 데이터가 있다면, 이 데이터를 그대로 사용하게 되며, 새로운 컨테이너에서 이를 덮어쓰지 않습니다.
• Jenkins 컨테이너는 해당 디렉토리(/var/jenkins_home)에 데이터를 쓰고 읽으며, 이 데이터는 호스트의 jenkins_home 볼륨에 저장되므로, 컨테이너가 중단되거나 삭제되더라도 데이터는 남아 있습니다.
이 메커니즘은 Docker 볼륨을 사용하는 방식으로, 데이터의 영속성을 보장합니다.
'개발 > Jenkins' 카테고리의 다른 글
Jenkins 매개변수 (0) | 2024.09.05 |
---|---|
젠킨스 배포(Finished: UNSTABLE) (0) | 2024.09.04 |
AWS+Jenkins+docker (0) | 2024.08.03 |
Jenkins 속도 문제 해결 (0) | 2024.08.03 |
Jenkins 매개변수 (0) | 2024.08.03 |