Ubuntu 에서 Docker설치하기

2022. 1. 16. 15:36DevOps/Docker & kubernetes

이번 시간에는 우분투에서 docker과 그와 관련된 프로그렘들을 설치해 보도록 하겠다.

 

세팅환경은 다음과 같다.

vmwere15.5

RAM: 2GB

HD: 20GB

CUP: 2core

 

먼저 우분투를 설치해 보도록 하자. 아래의 링크를 클릭한 후 Download메뉴를 클릭하여 우분투를 다운받도록 하자.

https://ubuntu.com/download/desktop#download

 

Download Ubuntu Desktop | Download | Ubuntu

Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.

ubuntu.com

이 후 vmwere를 통해 우분투를 설치하도록 하자. 자세한 설치방법은 아래와 같다. 단순 ISO만 차이가 나니 아래의 글을 따라 설치를 진행하면 편하다.

https://chicode.tistory.com/40

 

VMware를 활용하여 Linux설치하기 part.1

모든것이 윈도우를 기준으로 맞춰져 있는 대한민국의 경우 일반적인 사람들은 컴퓨터 1대당 1개의 운영체제(window)를 운용한다. 하지만 Window 사의 운영체제를 사용하지 않는 대표적인 기업 APPLE

chicode.tistory.com

 

이후 우분투의 설치가 끝났으면 다음과 같은 화면이 나타날 것이다. 

 

조금 이상하지 않은가? 우리가 알기론 우분투는 검은색에 흰글씨가 잔뜩있는 마치 linux와 유사해야하는데 갑자기 gui라니 조금 당황할 수 도 있다. 하지만 걱정하지말고 ctrl + alt + t 를 눌러주도록 하자.

그러면 익숙한 터미널 창이 나타나게 될 것이다. 이제 도커와 그와 관련된 프로그렘들을 설치해 보도록 하자.

1. DOCKER

먼저 cat > install-docker.sh

이라는 명령어를 사용한 후 아래의 명령어를 복사한 후 ctrl + c 를 눌러 저장하도록 하자.

#!/usr/bin/env bash
## INFO: https://docs.docker.com/engine/install/ubuntu/
set -euf -o pipefail
## 여기는 반드시 우분투의 유저명을 기입해 줘야한다.
DOCKER_USER=ubuntu

# Install dependencies
sudo apt-get update && apt-get install -y \
sudo apt-get update && sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg \
  lsb-release
# Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Set up the stable repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker CE
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# Use Docker without root
sudo usermod -aG docker $DOCKER_USER

이 후 chome u+x install-docker.sh 를 입력해 설치 권한을 주도록 하자.

그 다음으로는 ./install-docker.sh 를 입력하여 설치하도록 하자. 그러면 완성이다! 확인차 docker라고 입력해 보자. 그러면 다음과 같이 설명이 나타날 것이다.

2. DOCKER-COMPOSE

여러개의 컨테이너를 만들기 위한 기술이다. 한 번에 다수의 컨테이너 실행과 관리를 할 수 있도록 지원해 준다.

이것도 1번에서 했던것과 같이 cat > install-docker-compose.sh를 입력하여 아래의 명령어를 입력하도록 하자.

#!/usr/bin/env bash
## INFO: https://docs.docker.com/compose/install/

set -euf -o pipefail

DOCKER_COMPOSE_VERSION=v2.1.1

# Download and install
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

이 후 1번과 같이 chome로 권한을 부여하고  ./install로 설치를 하면 된다.

 

3. KUBECTL

쿠버네티스 클러스터를 제어하기 위한 커맨드 라인 도구 라고 보면 된다.

* 쿠버네티스 클레스터 : 컨트롤 플레인(클레스터를 조율함)과 노드(애플리케이션을 구동하는 작업자) 2가지로 이루어져있다.

아래의 명령어를 cat > install-kubectl.sh 에 넣어준 후 설치하도록 하자.

#!/usr/bin/env bash
## INFO: https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/

set -euf -o pipefail

KUSTOMIZE_VERSION=v4.4.1

# Download kustomize binary
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/kustomize/${KUSTOMIZE_VERSION}/hack/install_kustomize.sh"  | bash

# Install to /usr/local/bin
sudo install -o root -g root -m 0755 kustomize /usr/local/bin/kustomize

4. MINIKUBES

가상환경을 사용해 쿠버네티스 클러스터를 구현한다. 드라이버를 선택해 원하는 가상환경에서 구성할 수 있으며 학습환경을 위해 설치하도록 한다.

마지막이다! cat >install-minikubes.sh에 입력해 주도록 하자.

#!/usr/bin/env bash
## INFO: https://minikube.sigs.k8s.io/docs/start/

set -euf -o pipefail

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

미니쿠베를 이용해서 쿠버네틱스 클러스터를 생성해 보도록 하자. start라는 명령어를 통해 형성할 수 있다. 먼저 minikube start -h 명령어로 어떻게 구동하는지에 대해 읽어보자. 이 중에서 우리는 드라이버 라는 명령어를 사용하도록 하자.

minikube start -docker 명령어를 입력하도록 하자. 그러면 설치가 진행될 것이다.

천천히 살펴보도록 하자

먼저 kubernetes의 버전은 1.22.3version이며 Dokcer 버전은 20.10.8버전인것을 확인할 수 있다. 또한 쿠버네틱스 클러스터에서 사용할 인증서와 키들을 설치하는것을 볼 수 있다. 다음으로는 최상단에서 컨트롤하는 control plane을 설치하였으며 기본적인 REAC rules를 세팅하였다. 마지막으로 검증을 수행 후 설치가 완료된 것을 볼 수 있다.

 

cat ~/.kube/conifg 에서 우리는 크게 클레스터의 정보를 기입하는 cluster,어떤 클러스터와 통신을 할 것인지 정해주는 contexts(인증 리스트), 인증 사용자의 정보가 들어있는 user 3가지 목록으로 이루어진 yuml형식으로 된 설정 파일을 확인할 수 있다. 

 

여기서 중요한 것은 contexts을 무엇으로 설정하느냐에 따라 어떤 cluest에 어떤 user가 접속되는지를 확인할 수 있다.

클러스터의 노드를 확인하기 위해 다음의 명령어를 입력하자

kubectl get nodes

노드의 이름, control-plane과 master, 그리고 언제 만들어졌는지, 버전까지 확인할 수 있다.

kubectl cluster-info 명령어를 기입하면 contrl plane이 어디에 위치해 있는지(192.168.49.2:8443) coreDNS가 어디에 있는지(/api/v1/names~~~~~) 확인할 수 있다.

minikube status를 입력하면 해당 미니쿠베의 클러스터가 잘 실행되는지 확인할 수 있다.

그 외의 쿠버네티스 클러스터를 활용하기위한 명령어는 다음과 같다.

 

*/미니쿠베의 명령어/*

minikube status = 쿠버네티스 클레스터의 상태를 확인한다.

minikube pause = 쿠버네티스 클레스터를 일시중지 시킨다. 데스크탑의 수면모드와 같다.

minikube unpause= 쿠버네티스 클레스터의 pause를 해제한다.(재개)

minikube start = 쿠버네티스 클러스터의 전원을 킨다.

minikube stop = 쿠버네티스 클레스터의 전원을 종료한다.

minikube delete = 생성된 클레스터를 삭제한다.

minikube addons list= 애드온 목록을 확인한다

minikube addons enable [addon]= 애드온을 활성화 시킨다.

minikube addons disable [addon]= 애드온을 비 활성화 시킨다.

minikube ssh = 클러스터 노드에 SSH접속한다.

minikube kubectl ...  = 클러스터 버전과 대응되는 kubectl을 사용한다. == 버전이 달라도 사용할 수 있도록