Docker 설치, Jenkins 설치

Jung In Lee·2024년 3월 29일
0

(1) Docker 설치

  • 우분투 환경에 도커를 설치하였다.
  • 설치하고, ci/cd 환경을 먼저 구축하기 위해 jenkins를 설치하려고한다.
  • 이전 자율프로젝트 흐름을 좇아....
  • 일단 리포지토리 셋업도 하고 기타 등등 설정을 거처...
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

위 코드를 사용해서 최신 버전의 도커를 설치하였다.

$ sudo docker run hello-world

그리고 다음 명령어를 통해 실행해주면 hello world Docker!라는 텍스트가 뜬다.
뜨면 정상적으로 설치완료.

(2) jenkins 설치

Docker 환경에서 jenkins를 설치하기 위해 pull 받아준다.

$ docker pull jenkins/jenkins:lts

이후, 실험적으로 컨테이너를 띄워본다.

$ sudo docker run -d -p 8080:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts

젠킨스를 도커 환경에서 띄우면, 따로 배포설정을 고려할 필요가 없다고 한다.
이게 큰 장점이라고 한다.

어쨋든 도커 하나로 띄우면, 젠킨스를 띄울때마다 이런 명령어를 작성해야해서 기존에 고려했던 Docker-compose 환경을 구축하는 편이 좋다.
(여기서 Docker-compose를 사용하는 장점을 한번 더 안다. (yml 파일 하나에 설정을 모두 해주면, 손쉽게 실행이 가능하다.))

(3) Docker-compose 환경에서 Jenkins 실행

  • 일단 docker-compose 설치

    $ sudo apt install docker-compose
  • 실행하려는 루트에 docker-compose.yml 파일 생성후 입력해준다.

  • 앞 포트는 AWS에서 접속하려는 포트이기 때문에 보안그룹에 설정된 포트로 임의 변경이 가능하다.

  • 사실 뒤에 포트도 Docker내에서 사용할 포트라 맘대로 변경(?)해도 될거라고 생각하긴하는데... Jenkins 포트가 8080으로 정해져있는지 그건 또 확인해봐야한다.

    version: "3"
    services:
      jenkins:
        image: jenkins/jenkins:lts
        user: root
        volumes:
          - ./jenkins:/var/jenkins_home
        ports:
          - 8080:8080
  • 이미 실행중인 컨테이너를 중지하고, 업데이트를 해준다.

$ docker stop ${컨테이너이름}
$ sudo docker-compose up -d

※ 이건 내 컴퓨터에서 난 오류인데, 도커 실행중에 뭐 종료되거나하면,

Bind for 0.0.0.0:8080 failed: port is already allocated

이런 오류가 뜨는 경우가 있었다.

사실 에러 그대로 포트가 이미 사용중이라는 것인데...
(1)

sudo lsof -n -i :8080 

명령어를 통해 8080에 할당되어있는 컨테이너 조회후 최신것 kill

sudo kill -15 ${pid}

-> 안됨

(2) 실행중인 컨테이너 중지후 실행

-> 해결

혹시 이것도안되면 ps -a로 조회해 관련 컨테이너를 삭제하고 재실행해보자.

profile
Spring Backend Developer

0개의 댓글