본문 바로가기
DevOps

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

by 가영리 2024. 1. 4.
728x90

이제 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://~ 까지 메세지를 출력한다.

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