앞서, EC2의 개념과 EC2 보안그룹에 대해서 알아보았습니다.
이번 게시물에서는, EC2에 Docker를 활용해서, 젠킨스 컨테이너를 띄우는 방법에 대해서 다뤄보겠습니다.



Session 클릭

sudo apt update ➡️ 패키지 목록 업데이트sudo apt install apt-transport-https ca-certificates curl software-properties-common ➡️ Docker 필수 패키지 설치curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ➡️ Docker 공식 GPG키 추가sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ➡️ 시스템에 Docker 저장소를 추가GPG 키란?
✅Docker의 공식 저장소에서 패키지를 설치할 때, 해당 패키지가 공식적으로 Docker에서 제공한 패키지인지 확인하기 위해 GPG 서명을 검사
✅Docker의 저장소에서 다운로드한 패키지가 변조되지 않았다는 것을 보장
✅시스템에서 안전하게 Docker를 설치할 수 있도록 한다.
✅GPG 키가 없으면, Docker 저장소에서 설치를 차단할 수 있음.
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status dockerdocker --version ➡️ Docker version 확인docker run ➡️ 도커 컨테이너 실행
-d ➡️ 백그라운드 환경에서 컨테이너 실행
-v /var/run/docker.sock:/var/run/docker.sock ➡️ 호스트의 도커 실행 파일과 볼륨 설정
-v /usr/lib/jvm/java-21-openjdk-amd64:/usr/lib/jvm/java-21-openjdk-amd64 ➡️ 호스트의 jdk 폴더와 볼륨 설정
-p 8090:8080 ➡️ 호스트의 8090 포트로 접근 시, 컨테이너의 8080 포트로 호스팅(젠킨스 기본 포트는 8080)
--add-host=host.docker.internal:host-gateway ➡️ 컨테이너에서 호스트에 접근 가능하도록 설정
jenkins/jenkins:lts-jdk21 ➡️ 실행할 Jenkins 이미지(이미지가 없을 경우, 자동으로 pull / 이미지가 존재할 경우, 해당 이미지를 활용해 컨테이너를 run)
docker run -d \
--name jenkins \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/lib/jvm/java-21-openjdk-amd64:/usr/lib/jvm/java-21-openjdk-amd64 \
--add-host=host.docker.internal:host-gateway \
-p 8090:8080 \
jenkins/jenkins:lts-jdk21
컨테이너 상태 확인
docker ps
#출력
bdba2e0d7c0a jenkins/jenkins:lts-jdk21 "/usr/bin/tini -- /u…" 4 days ago Up 4 days 50000/tcp, 0.0.0.0:8090->8080/tcp, [::]:8090->8080/tcp jenkins
젠킨스 접속 및 관리자 패스워드 설정

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