토이 프로젝트 진행 중 EC2에 Docker 설치가 필요했습니다.
대부분 yum 으로 설치하는 가이드가 많길래 yum 없이 apt-get 으로 설치하는 방법을 설명해보겠습니다.
사실 yum을 설치하려다가 Ubuntu 24.04 부터 기존 /etc/apt/ 경로에 있던 sources.list 파일을 사용하지 않고 /etc/apt/sources.list.d/ 경로에 있는 ubuntu.sources 파일을 사용하게 되면서 기존 레퍼런스들(ubuntu 22.04 LTS 기준)의 방법과는 다른 설정이 필요하게 됐고 그 과정이 번거로워 간단한 방법을 찾게 됐습니다.
추가로 Ubuntu는 기본적으로 APT 패키지 관리자를 사용하고 yum은 CentOS/RHEL 계열에서 사용되는 패키지 관리 시스템이라는 점에서 APT를 사용하는게 더 적절하다 생각됩니다.
Ubuntu 24.04에서 Docker 설치 방법
1. 기존 패키지 업데이트
sudo apt-get update && sudo apt-get upgrade -y
2. Docker 관련 패키지 설치
Docker를 설치하기 전에 필요한 종속 패키지를 설치합니다.
sudo apt-get install ca-certificates curl
3. Docker GPG 키 추가
Docker 저장소를 신뢰할 수 있도록 GPG 키를 추가합니다.
# 디렉토리 생성
sudo install -m 0755 -d /etc/apt/keyrings
# Docker의 GPG 키 다운로드 및 /etc/apt/keyrings/docker.asc에 저장
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 모든 사용자에게 읽기 권한 추가
sudo chmod a+r /etc/apt/keyrings/docker.asc
명령어 옵션들:
- -f: HTTP 요청이 실패했을 때 오류를 반환합니다.
- -s: 출력 메시지를 숨깁니다.
- -S: -s와 함께 사용되며, 오류 발생 시 메시지를 출력합니다.
- -L: 리디렉션이 있을 경우 이를 따라갑니다.
GPG 키란?
GNU Privacy Guard라는 암호화 및 디지털 서명 도구에서 사용하는 암호화 키입니다. 이는 공개 키 암호화의 구현체 중 하나로, 데이터의 무결성과 신뢰성을 보장하기 위해 사용되며 주로 소프트웨어 배포(docker 등), 이메일 보안, 파일 암호화 등 다양한 보안 목적으로 사용됩니다.
Docker 설치와 같은 소프트웨어 배포 과정에서는 소프트웨어를 신뢰할 수 있는지 검증하기 위해 GPG 키가 사용됩니다.
예를 들어 GPG 키 추가 후 APT를 통해 Docker 를 설치하면(`sudo apt-get install docker-ce`) GPG 키를 사용해 패키지 서명이 검증됩니다.
4. Docker 저장소 설정
Docker 저장소를 APT 소스 목록에 추가합니다.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
ⓘ Linux Mint와 같은 Ubuntu 파생 배포판의 경우, VERSION_CODENAME 이 아니라 UBUNTU_CODENAME을 사용해야 할 수도 있다고 합니다.
5. Docker 패키지 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. 확인하기
sudo docker run hello-world
이 명령은 테스트 이미지를 다운로드 받아서 컨테이너에서 실행하고 확인 메시지를 출력하고 종료됩니다. 정상적으로 확인 됐다면 아래 명령어로 컨테이너를 삭제해도 됩니다.
# 컨테이너 정보 확인
sudo docker ps -a
# CONTAINER_NAME 에는 NAMES 항목 값을 입력합니다.
sudo docker rm CONTAINER_NAME
(선택 사항) sudo 없이 Docker 명령어 사용하기
1. docker 그룹 생성하기
sudo groupadd docker
2. 현재 사용자를 그룹에 추가하기
sudo usermod -aG docker $USER
변경 사항을 적용하기 위해 로그아웃 후 다시 로그인해야 할 수 있습니다.
Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.
docs.docker.com
'Infrastructure' 카테고리의 다른 글
GitHub Actions와 Docker로 CI/CD 파이프라인 구축하기 (1) | 2024.12.02 |
---|
댓글