개발/개발 환경

[Docker] 도커를 활용하여 Jenkins 설치 해보기 in WSL

growing-dev 2024. 7. 8. 21:36
반응형

오늘은 WSL 환경에서 도커, 도커 Desktop을 활용하여 Jenkins를 설치하는 방법을 알아보도록 하겠습니다.

 

 

도커를 활용하여 Jenkins 설치 해보기 in WSL

 

 

 

 

 도커 설치

 

일단 WSL은 설치되어 있다고 가정하겠습니다.

제일 먼저할 것은 Docker Desktop을 설치하는 것입니다.

https://www.docker.com/products/docker-desktop/

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

도커 Desktop 공식 사이트에서 Download for Windows를 선택하여 설치하면 됩니다.

도커 Desktop

 

 

이후 계정을 만들고 로그인을 해줍니다.

도커 desktop 화면

 

그런 다음 세팅에 들어가서 Use the WSL 2 based engine 을 체크해 줍니다.

세팅

 

이제 WSL로 가서 아래와 같이 Docker와 Docker Compose를 설치합니다.

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo apt-get install docker-compose

 

 

 Jenkins 설치 및 실행

 

아래와 같이 jenkins를 설치하고 실행합니다.

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

 

아래와 같이 로컬에 jenkins가 없는 상태라서 pull해서 설치하고 실행합니다.

jenkins 설치

 

브라우저에서 http://localhost:8080/ 로 jenkins를 접근합니다.

초기 비밀번호는 아래와 같은 명령어로 확인할 수 있습니다.

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

 

이후 Admin 계정을 설정하고 비밀번호를 입력합니다.

필요한 Plugin들을 손쉽에 웹에서 설치할 수 있습니다.

 

jenkins

 

 

 Jenkins를 서버에 직접 설치? 도커로 설치?

 

Jenkins를 Docker로 실행하는 것과 직접 설치해서 사용하는 것에는 각각 장단점이 있습니다. 어떤 방법이 더 좋은지는 프로젝트 요구사항, 환경 설정, 유지 관리 방법 등에 따라 달라질 수 있습니다. 

Docker로 Jenkins 실행 장점

  • 일관성: Docker 이미지는 동일한 환경을 보장하므로 개발, 테스트, 프로덕션 환경에서 일관된 동작을 기대할 수 있습니다.
  • 이동성: Docker 컨테이너는 어디서나 실행될 수 있으므로, 시스템 간의 이동이 용이합니다.
  • 격리: Jenkins와 그 종속성이 컨테이너 내에서 격리되어 있어, 호스트 시스템에 영향을 주지 않습니다.
  • 쉬운 설치 및 업데이트: Jenkins 및 플러그인 설치, 업데이트가 간편합니다. 새로운 이미지를 가져와 컨테이너를 다시 실행하면 됩니다.
  • 버전 관리: 특정 Jenkins 버전을 명확하게 지정하고 사용할 수 있습니다.
  • 복구 및 백업: Docker 볼륨을 사용하여 Jenkins 데이터를 쉽게 백업하고 복구할 수 있습니다.


Docker로 Jenkins 실행 단점

  • 초기 설정: Docker 환경 설정이 익숙하지 않은 경우 초기 설정이 복잡할 수 있습니다.
  • 퍼포먼스: Docker의 오버헤드가 있을 수 있지만, 이는 대부분의 경우 미미합니다.
  • 디버깅: 컨테이너 내부에서 발생하는 문제를 디버깅하는 것이 어려울 수 있습니다.

 

 

 결론

 

오늘은 Jenkins로 도커를 설치해서 실행하는 방법을 순차적으로 해보았습니다. Jenkins 환경을 도커로 했을 때 무엇보다 일관성과 이식성이 좋아서 서버를 이동하기 편하다는 장점이 있지만 도커 자체와 도커파일을 이해하기 어렵거나 다른 시스템들과의 통합이 어려울 수도 있을 것 같습니다. 상황에 맞게 적절하게 사용하는 것이 좋을 것 같습니다.

반응형