Ga0Lee

[Devops] GitOps CI/CD 구축하기(2) - Docker 설치 본문

DevOps

[Devops] GitOps CI/CD 구축하기(2) - Docker 설치

가영리 2024. 1. 4. 22:53

이제 EC2 인스턴스도 생성했으니 생성한 리눅스 서버에 docker를 설치해보자.

 

패키지 설치

시스템의 패캐지 목록을 최신 상태로 업데이트

sudo apt update

보안과 관련된 인증서와 명령어를 다루는 도구들을 설치

sudo apt install ca-certificates curl gnupg

 

Docker 키 다운로드

키를 다운받을 디렉토리 생성

sudo install -m 0755 -d /etc/apt/keyrings

docker의 gpg 키를 생성한 디렉토리에 다운받고 해당 키를 디코딩

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

파일에 모든 사용자가 읽기 권한을 부여

sudo chmod a+r /etc/apt/keyrings/docker.gpg

저장소 설정

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

디렉토리의 내용을 확인하여 gpg 키가 잘 다운받아졌는지 확인

ls /etc/apt/keyrings/: /etc/apt/keyrings/

docker를 다운받을 디렉토리 셋팅이 끝난 다음 반영을 위해 업데이트

sudo apt update

 

Docker 설치

설치항목

docker-ce : Docker의 핵심 엔진으로 컨테이너의 생성, 실행 및 관리에 사용

docker-ce-cli : Docker와 상호 작용하기 위한 Command Line Interface

containerd.io : Docker 컨테이너와 상호 작용하는 데 필요한 컨테이너 런타임

docker-buildx-plugin : Docker의 빌드 프로세스를 향상시키는 다양한 기능 제공 

docker-compose-plugin : docker-compose를 사용하기 위한 플러그인

docker-compose : Docker 컨테이터를 정의하고 실행하는 데 사용

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

설치됐는지 확인

docker version

 

permission denied 경고창이 뜬다. 사용자가 docker demon에 접근할 권한이 없어서 뜨는 오류로 docker client는 접근할 수 있어 docker client의 정보를 받아오지만 docker engine에 접근하려면 현재 사용자를 Docker 그룹에 추가해야 한다.

현재 사용자를 docker 그룹에 추가

sudo usermod -aG docker $USER

확인

cat /etc/group | grep docker

유저가 잘 추가된 것으로 보인다.

이제 로그아웃 후 다시 로그인 하고 docker version을 확인하면 아래와 같은 화면이 나올 것이다.

docker engine 까지 설치를 완료하였다. 확인을 위해 테스트 이미지를 가동해보겠다.

docker run hello-world

실행 시 노드에 hello-world 이미지가 없어서 먼저 다운을 받는다.

다운로드가 끝나면 hello-world 컨테이너를 통해 Hello from Docker!부터 https://~ 까지 메세지를 출력한다.

이렇게 도커 설치와 테스트를 완료하였다.