$ 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!라는 텍스트가 뜬다.
뜨면 정상적으로 설치완료.
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 파일 하나에 설정을 모두 해주면, 손쉽게 실행이 가능하다.))
일단 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
※ 이건 내 컴퓨터에서 난 오류인데, 도커 실행중에 뭐 종료되거나하면,
이런 오류가 뜨는 경우가 있었다.
사실 에러 그대로 포트가 이미 사용중이라는 것인데...
(1)
sudo lsof -n -i :8080
명령어를 통해 8080에 할당되어있는 컨테이너 조회후 최신것 kill
sudo kill -15 ${pid}
-> 안됨
(2) 실행중인 컨테이너 중지후 실행
-> 해결
혹시 이것도안되면 ps -a로 조회해 관련 컨테이너를 삭제하고 재실행해보자.