도커

도커와 젠킨스로 스프링부트+그래들 프로젝트 배포(1/4) - 도커 설치

피프밍 2023. 3. 26. 15:23

이 게시글은 도커와 젠킨스로 스프링부트+그래들 프로젝트 배포의 첫번째 글입니다

참 귀여운 로고(출처 : 위키백과)

최종적으로는 젠킨스 컨테이너에서 DooD(Docker-Outside-Of-Docker)방식으로

스프링부트+그래들 프로젝트의 깃허브 레파지토리에 webhook을 설정해서

push가 발생하면 자동으로 젠킨스에서 빌드 후 배포까지 하는것이 목표입니다.

UBUNTU 서버에 도커 설치하기

제 환경들을 미리 적어두겠습니다~

서버 - AWS Lightsail
인스턴스 플랜 - $10 플랜 (메모리 : 2GB, 프로세스 : 1vCPU)
OS - Ubuntu 20.04 LTS (20년4월에 나온 Long Term Support할 예정인 버전)
터미널 클라이언트 - mobaXterm (putty같은 소프트웨어. 본인이 편한걸 사용하시면 됩니다. 큰 의미 없습니다)
패키지 관리자 - apt (콘솔or터미널에서 패키시 설치할때 사용하는 패키지 관리 도구)
도커 - Docker Community Edition 23.0.1

 

[더 좋은 방법이 있거나 의문, 수정사항 언제든 댓글 달아주세요.] 

 

부가적인 설명에 대해서는 접은글로 적어두겠습니다 필요에따라 [더보기]를 눌러 확인해보세요.

 

1. 우분투 패키지 관리자 업데이트

sudo apt update
더보기

패키지 관리자는 운영체제에서 소프트웨어를 쉽게 설치, 업데이트, 삭제할수있도록 도와주는 시스템.

대표적으로 윈도우는Windows Installer, 리눅스에서는 apt, yum, dnf 등이 있다

 

2. Docker를 설치하기 위한 의존성 패키지 설치

sudo apt install apt-transport-https ca-certificates curl software-properties-common
더보기

apt-transport-https : HTTPS를 통해 패키지를 다운로드하기 위한 도구입니다.

ca-certificates : 인증서 관련 도구 . HTTPS를 사용하는 웹사이트나 서버와 통신할 때 인증서를 검증하는데 필요한 인증서 정보를 제공

curl : 명령줄에서 URL을 다운로드하는 도구입니다. Docker 설치 과정에서 Docker 공식 GPG 키를 다운로드하고 시스템에 추가하기 위해 사용됩니다.

gnupg :공개 키 암호화 도구. Docker의 패키지들이 Docker의 개발자에 의해 서명되어 있기 때문에, 그 서명을 검증하는데 필요한 도구

software-properties-common : 소프트웨어 소스를 추가하고 관리하는 데 사용되는 유틸리티 패키지입니다. 이 패키지는 add-apt-repository 명령어를 사용하여 Docker 저장소를 APT 패키지 소스 목록에 추가할 때 사용됩니다. 도커 저장소를 APT 패키지 소스에 추가하는 이유는 최신버전설치, 업데이트 및 보안패치, 편의성 등의 장점이 있습니다

 

3. Docker 공식 GPG 키 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
더보기

Docker의 공식 GPG (GNU Privacy Guard) 키를 시스템에 추가하여 소프트웨어가 Docker에서 발행한 것임을 검증할 수 있습니다.
curl 명령어를 사용하여 Docker 공식 GPG 키를 다운로드하고, sudo apt-key add - 명령어를 사용하여 다운로드한 키를 시스템의 APT 키 링에 추가합니다. 
이렇게 하면 Docker 패키지가 올바른 출처에서 배포되었는지 확인할 수 있습니다.

 

4. Docker APT 저장소 추가

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
더보기

위 명령어를 실행하면 시스템에 Docker APT 저장소가 추가되고, 이제는 apt명령어를 사용하여 Docker 패키지를 설치할 수 있게 됩니다.

 

5. 저장소 다시 업데이트

sudo apt update
더보기

apt와 apt-get명령어의 차이 : sudo apt install 명령어와 sudo apt-get install 명령어는 기능적으로 동일합니다. 이 두 명령어는 APT (Advanced Package Tool)를 사용하여 Ubuntu 또는 Debian 시스템에 패키지를 설치할 때 사용됩니다.
하지만 apt 명령어는 사용자 친화성이 더 높습니다. 또한 apt 명령어는 의존성 문제를 해결하는 더 나은 방법을 제공합니다.
그러나, apt-get 명령어는 오래된 시스템에서도 작동할 수 있으므로, 호환성 측면에서는 더 안정적인 선택입니다.

Ubuntu 20.04 LTS가 나름 최신의 버전이라 호환성 측면은 문제없을것같아 apt를 사용했습니다.

 

6.드디어 Docker 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
더보기

이 패키지들은 도커의 공식문서에서 제공하는 설치 가이드를 기반으로 했습니다.

docker-ce : Docker Community Edition을 설치합니다. 위에서 순서대로 진행하셨다면 최신 버전의 도커가 설치됩니다.

docker-ce-cli : 도커의 CLI(Command Line Interface) 도구입니다. 사용자가 도커를 컨트롤하는 데 필요한 인터페이스를 제공합니다.

containerd.io : 도커의 컨테이너 런타임입니다. 컨테이너 런타임은 컨테이너를 실행하고 관리하는 데 필요한 기능을 제공합니다. containerd.io는 도커 엔진에서 컨테이너를 생성, 시작, 중지, 삭제하는 데 사용되며, 이를 통해 도커의 핵심적인 기능인 컨테이너 실행을 수행합니다.

docker-buildx-plugin : Docker Buildx는 도커 이미지를 더 빠르고 효율적으로 빌드하고 배포하기 위한 도구입니다.

docker-compose-plugin : 도커 애플리케이션을 정의하고 다중 컨테이너 도커 애플리케이션을 구축, 실행, 테스트하는 도구입니다.

 

7. 설치확인

sudo docker run hello-world
더보기

도커 컨테이너를 실행하는 명령어인데
원래는 Dockerfile을 통해 이미지를 빌드 또는 도커 허브에서 pull해서 
생성된 이미지를 실행하는게 일반적입니다.
그런데 hello-world는 크기가 매우 작아서 이미지가 없다면 도커엔진이 자동으로 hello-world이미지를

도커 허브에서 다운로드해서 컨테이너를 실행시켜줍니다.

이렇게 나온다면 성공적으로 도커가 설치된것입니다

도커설치가 끝났습니다!

원래 초기 설정이 가장 어려운 법인데 큰 산을 넘었어요! 고생하셨습니다


(선택) 추가 설정

사용자 계정이 root 계정이라면 상관없지만 만약 root 계정이 아닌 다른 계정으로 사용한다면

매번 docker 명령어를 사용할 때 sudo를 붙여줘야 됩니다.

현재 로그인한 계정으로 sudo를 붙이지 않아도 docker 명령어를 사용할 수 있게끔 설정해 보겠습니다.

1. 도커 그룹 생성

sudo groupadd docker
더보기

일반적으로 도커를 설치하면.docker 그룹이 자동으로 생성됩니다.

하지만 설치 과정에 문제가 있어서 생성이 누락됐을수도 있으니 해당 명령어를 실행해줍니다.

 

2. 사용자 계정 추가

sudo usermod -aG docker $USER
더보기

현재 로그인한 사용자를 docker 그룹에 추가하는 명령어 입니다.

'$USER' 부분에 입력할 필요없이 '$USER' 그대로 명령어를 실행하면 됩니다.

 

3. 사용자 계정을 도커 그룹에 추가했으므로 변경 사항을 적용하려면 로그아웃한 후 다시 로그인

 

4. 권한 확인

groups $USER
더보기

명령어를 실행하면 가장 마지막에 'docker'가 추가된 걸 확인할 수 있습니다.