Q :
너는 이제부터 도커와 쿠버네티스 전문가야.
나에게 리눅스로 도커와 쿠버네티스를 어떻게 활용해야하는지
A to Z로 입문자에게 가르치듯 설명해줘.
추가질문 :
혹시 각 챕터와 그 번호마다 주의해야할 점과 부가설명을 달아줄수 있어?
A :
물론입니다!
도커와 쿠버네티스는 현대 애플리케이션 배포와 관리를 위한 강력한 도구입니다.
도커는 컨테이너 기술을 제공하고,
쿠버네티스는 이러한 컨테이너들을 관리하는 오케스트레이션 시스템입니다.
시작해보죠.
1. 도커(Docker)
도커는 애플리케이션을 독립된 환경에서 실행할 수 있게 해주는 컨테이너 기술입니다.
1.1 도커 설치
리눅스(Ubuntu 기준)에서 도커를 설치하려면 다음 단계를 따릅니다.
# 기존 도커 설치 파일 제거
sudo apt-get remove docker docker-engine docker.io containerd runc
# 필수 패키지 설치
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# 도커의 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 도커 저장소 설정
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
# 도커 설치
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 도커 서비스 시작
sudo systemctl start docker
sudo systemctl enable docker
주의사항:
- 도커 설치 중 오류가 발생할 경우, 각 단계에서 출력되는 메시지를 주의 깊게 읽고, 필요한 경우 오류 메시지를 구글링하여 해결하세요.
- sudo 명령을 사용하므로 관리자 권한이 필요합니다.
- 도커 서비스가 자동으로 시작되지 않으면 수동으로 시작해야 합니다.
부가설명:
- apt-get 명령어는 패키지 관리 도구로, 리눅스 시스템에 필요한 소프트웨어를 설치하는 데 사용됩니다.
- systemctl 명령어는 시스템 서비스를 관리하는 데 사용됩니다.
1.2 도커 명령어 기본 사용법
1. 도커 버전 확인
docker --version
2. 도커 이미지 다운로드
docker pull 이미지_이름
3. 도커 컨테이너 실행
docker run -d --name 컨테이너_이름 이미지_이름
4. 실행 중인 컨테이너 목록 확인
docker ps
5. 도커 컨테이너 접속
docker exec -it 컨테이너_이름 /bin/bash
6. 도커 컨테이너 중지 및 삭제
docker stop 컨테이너_이름
docker rm 컨테이너_이름
주의사항:
- docker run 명령어를 사용할 때 -d 옵션은 백그라운드 모드로 실행하겠다는 의미입니다. 이 옵션을 사용하지 않으면 터미널이 컨테이너에 붙잡히게 됩니다.
- 컨테이너를 삭제하기 전에 반드시 중지해야 합니다.
부가설명:
- 도커 이미지는 애플리케이션과 필요한 모든 라이브러리를 포함하는 읽기 전용 템플릿입니다.
- 도커 컨테이너는 이미지를 기반으로 실행되는 독립적인 애플리케이션 인스턴스입니다.
2. 쿠버네티스(Kubernetes)
쿠버네티스는 도커 컨테이너를 관리하는 오케스트레이션 도구입니다.
2.1 미니쿠베(Minikube) 설치
쿠버네티스 학습 및 테스트를 위해 로컬에서 실행할 수 있는 미니쿠베를 사용합니다.
1. 필수 패키지 설치
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
2. 쿠버네티스 패키지 설치
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubectl
3. 미니쿠베 설치
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
4. 미니쿠베 시작
minikube start
주의사항:
- 미니쿠베는 가상화 소프트웨어를 사용합니다. 시스템에 VirtualBox 또는 KVM이 설치되어 있어야 합니다.
- 미니쿠베 실행 중 오류가 발생할 경우, 가상화 소프트웨어가 제대로 설치되어 있는지 확인하세요.
부가설명:
- 미니쿠베는 단일 노드 쿠버네티스 클러스터를 로컬에서 실행할 수 있게 해주는 도구입니다.
- 쿠버네티스 클러스터는 노드(Node)로 구성되며, 각 노드는 컨테이너를 실행합니다.
2.2 쿠버네티스 기본 명령어
1. 클러스터 상태 확인
kubectl cluster-info
2. 노드 정보 확인
kubectl get nodes
3. Pod 배포
kubectl run my-pod --image=nginx --port=80
4. Pod 목록 확인
kubectl get pods
5. 서비스 생성
kubectl expose pod my-pod --type=NodePort
6. 서비스 목록 확인
kubectl get services
주의사항:
- kubectl 명령어를 사용할 때 리소스 이름과 속성을 정확히 입력해야 합니다.
- Pod 및 서비스 생성 시, 네트워크 설정에 유의해야 합니다.
부가설명:
- 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장, 관리 작업을 자동화하는 시스템입니다.
- Pod는 쿠버네티스에서 가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함할 수 있습니다.
3. 도커와 쿠버네티스를 함께 사용하기
도커는 컨테이너를 만들고 실행하는 데 사용되며, 쿠버네티스는 이러한 컨테이너들을 관리하고 오케스트레이션하는 데 사용됩니다. 일반적인 워크플로우는 다음과 같습니다.
1. 도커 이미지를 빌드
docker build -t my-app .
2. 도커 허브에 이미지 푸시
docker login
docker tag my-app 사용자이름/my-app
docker push 사용자이름/my-app
3. 쿠버네티스에서 이미지 사용
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: 사용자이름/my-app
ports:
- containerPort: 80
# yaml
위 내용을 'deployment.yaml' 파일에 저장한 후, 다음 명령어로 배포합니다.
kubectl apply -f deployment.yaml
4. 서비스 생성
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
# yaml
위 내용을 'service.yaml ' 파일에 저장한 후, 다음 명령어로 서비스 생성합니다.
kubectl apply -f service.yaml
주의사항:
- 도커 이미지를 빌드할 때 Dockerfile의 경로와 내용을 정확히 확인하세요.
- 도커 허브에 이미지를 푸시하려면 도커 허브 계정이 필요하며, 푸시 전에 로그인을 해야 합니다.
- 쿠버네티스 매니페스트 파일(deployment.yaml, service.yaml)의 문법과 속성을 정확히 입력하세요.
부가설명:
- 도커 이미지는 컨테이너 실행에 필요한 모든 파일과 설정을 포함하는 패키지입니다.
- 쿠버네티스의 Deployment는 애플리케이션의 원하는 상태를 정의하고, 그 상태를 유지하기 위해 Pod를 생성, 삭제, 업데이트합니다.
- Service는 네트워크에서 Pod에 접근할 수 있는 방법을 정의합니다. LoadBalancer 타입의 서비스는 클라우드 제공자가 로드 밸런서를 생성하여 외부 트래픽을 Pod로 라우팅합니다.
A:
이제 도커와 쿠버네티스를 사용해 애플리케이션을 배포하고 관리할 수 있습니다.
더 깊은 학습을 위해 공식 문서와 다양한 튜토리얼을 참조하세요.
Q:
도커 학습을 위한 한국어 블로그나 문서가 있어?
1. 도커 공식 문서
- 도커 공식 문서: https://docs.docker.com/guides/
2. 한국어 블로그
2.1 우아한형제들 기술 블로그
- 우아한형제들 기술 블로그: https://techblog.woowahan.com/
우아한형제들 기술블로그
우아한형제들의 기술, 서비스, 비전, 가치를 들려 드립니다.
techblog.woowahan.com
2.2 네이버 D2
- 네이버 D2: https://d2.naver.com/helloworld
3. YouTube 채널
'Linux' 카테고리의 다른 글
[Linux] 파일을 서버로 직접 보내는 방법 FTP (File Transfer Protocol), Filezilla (0) | 2022.05.27 |
---|---|
[Linux] 하나의 서버로 여러 개의 프로젝트 실행 (0) | 2022.05.24 |
[Linux] 백그라운드로 실행 (0) | 2022.05.24 |
[Linux] 배포된 서비스 수정 (0) | 2022.05.24 |
[Linux] 폴더 이동 및 기본 동작 (0) | 2022.05.23 |
댓글