IT/Kubernetes (k8s)

Docker를 설치해 봅시다!

잼니크 2023. 7. 2. 22:08
반응형

안녕하세요. 잼니크 입니다. 

이번 글에서는 도커(Docker)를 설치해 보겠습니다. 

 

사실 카테고리를 보면 아시겠지만 k8s에 대한 내용을 주로 다룰텐데... 그 전에 설치 및 환경 설정을 위해 간단하게 글을 남깁니다. 

1. Docker가 중요한 이유

도커가 중요한 이유는 컨테이너 가상화를 편하게 사용할 수 있도록 만들고, Docker hub 같은 플랫폼을 제공하여 컨테이너 가상화를 쉽게 사용할 수 있게 만들었습니다. 그러나 현재 기준에서는 도커 데몬에 의한 구조적인 문제가 있고, Podman 같은 대체제가 있는데다가, 표준 인터페이스를 통해 컨테이너를 관리하는 쿠버네티스(Kubernetes, k8s)나 오픈쉬프트(OpenShift)같은 관리 도구의 중요성이 높아지고 있습니다. 

 

그럼에도 불구하고... 쿠버네티스를 시작하기 위해 많은 문서들이 도커를 기반으로 시작하기 때문에 도커를 아는 것은 중요할 것 같습니다. 이 분야에 진입하는 개인 입장에서 그렇지만...  Docker hub도 기업고객같은 특정 사용자에게는 유료로 사용이 가능하기 때문에... 간단하게 사용해 보고 넘어가면 될 것 같습니다. 

 

2. Docker를 설치하기 전 진행할 것들 

도커를 설치하기 전 저는 Ubuntu 22.04 서버 버전으로 설치를 했다고 가정하고 시작하겠습니다. 개인적으로는 레드햇계열이나 젠투, 데비안 같은 배포판을 더 좋아하지만... 이런 상황에서는 대부분 우분투를 기준으로 문서가 되어 있기 때문에 저도 우분투를 사용하겠습니다! 

 

우분투 설치는 아래 링크를 참고 해 주세요!

2023.07.02 - [IT/Linux] - Ubuntu 22.04 서버 버전 설치

 

Ubuntu 22.04 서버 버전 설치

안녕하세요! 잼니크입니다. 오늘은 우분투 22.04 서버를 설치해 보겠습니다. 새삼스럽게 갑자기 우분투 설치 문서를 작성하는 이유는 그동안 잘 사용하지 않았기 때문에 새로 생긴 함정(?) 빠르고

gam1532.tistory.com

그 다음, 도커를 설치하기 전에 메뉴얼을 정독합니다. 아래 링크는 설치 메뉴얼과 설치 후 해야할 일을 정리해논 문서입니다. 

 

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

 

docs.docker.com

https://docs.docker.com/engine/install/linux-postinstall/

 

Linux post-installation steps for Docker Engine

 

docs.docker.com

 

도커를 설치하기 전, 먼저 기존에 설치된 도커와 관련된 도구를 먼저 삭제합니다. 

삭제를 위해 아래 명령을 쉘에서 실행합니다. 

# 쉘에서 실행
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

저는 우분투를 설치하자 마자 실행해서 아무것도 삭제되지 않았네요. 만약 도커를 완전히 삭제하고 재 설치 한다면 아래 링크를 참고해서 진행하면 될 것 같습니다.

https://docs.docker.com/engine/install/ubuntu/#uninstall-docker-engine

 

Install Docker Engine on Ubuntu

 

docs.docker.com

삭제가 완료 되었으면 설치를 진행합니다. 설치는 몇가지 방법이 있는데 저는 도커엔진과 클라이언트만 패키지로 설치 진행 합니다! 

패키지 설치를 위해 도커 패키지 저장소를 추가해야하는데, 패키지 저장소를 추가하기 위해 필요한 패키지를 설치해 줍니다. 

# 쉘에서 실행
sudo apt update
sudo apt install ca-certificates curl gnupg

그 다음은 도커 저장소 인증을 위해 키를 다운로드 받고 저장합니다. 

# 쉘에서 실행
sudo install -m 0755 -d /etc/apt/keyrings
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
# GPG 파일 확인
ls /etc/apt/keyrings/
# 저장소 설정
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
# 저장소 파일 확인 
ls /etc/apt/sources.list.d/
cat /etc/apt/sources.list.d/docker.list

저장소 세팅이 끝난 다음, 저장소 반영을 위해 아래 명령을 실행합니다.

# 쉘에서 실행
sudo apt update

이제 도커 설치 준비가 되었습니다. 

 

3. Docker 설치하기 

패키지로 설치할 것이기 때문에 사실 뭐 특별하게 할 건 없습니다. 아래 명령을 실행합니다. 도커 메뉴얼과 다른 점은 docker-compose도 같이 설치하도록 추가했습니다.

# 쉘에서 실행
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

설치가 끝났으면 검증을 해 보겠습니다. 

# 쉘에서 실행
docker version

어!? 뭔가 이상합니다! 오류가 나네요. 이건 지금 사용자가 도커 데몬에 접근할 권한이 없어서 뜨는 오류입니다. 도커 클라이언트는 접근할 수 있기 때문에 도커 클라이언트의 정보를 받아오지만 도커 엔진에 접근하려면 현재 사용자를 Docker 그룹에 추가합니다. 

# 쉘에서 실행
# 현재 사용자를 docker 그룹에 추가 
sudo usermod -aG docker $USER
# 확인
cat /etc/group | grep docker

그 다음 그룹이 추가 된 것을 적용하기 위해 로그아웃 후 다시 로그인해서 아까 오류난 명령을 다시 실행해 봅니다. 

# 쉘에서 실행
docker version

이제 도커 엔진까지 설치가 완료 되었습니다. 마지막으로 테스트 이미지를 기동하겠습니다.

# 쉘에서 실행
docker run hello-world

실행하면 도커를 실행하는 노드에 hello-world 이미지가 없어서 먼저 다운로드를 받고, 다운로드가 끝나면 hello-world 컨테이너를 통해 Hello from Docker! 부터 맨 아래까지의 메시지를 출력합니다. 

 

도커 설치가 완료 되었습니다.

 

궁금한 점 있으면 댓글 부탁드립니다!

고생하셨습니다! 

반응형

'IT > Kubernetes (k8s)' 카테고리의 다른 글

가상머신에 Minikube 설치하기 (with Docker)  (0) 2023.07.03