일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ec2
- SpringBoot
- 레디스
- Zeppelin
- 젠킨스
- 예제
- 자동
- aws
- login
- fastcampus
- Cluster
- 설정
- spring
- hive
- Jenkins
- 자바
- Docker
- Mac
- 클러스터
- EMR
- redash
- config
- Kafka
- 로그인
- 간단
- Redis
- 머신러닝
- java
- vue
- gradle
- Today
- Total
코알못
[Docker] 설치 본문
docker는 리눅스 컨테이서 관리 기술로 mac/window 에서 Native(원주민)로 사용할 수 없다.
그러나 도커의 경우 쓰임새가 많아지다 보니 mac, window 에서도 사용 가능하도록 'docker for desktop' 이 만들어졌으며 linux 에서 설치해야하는 docker, docker-compose 모두 포함되어 있다. (단, 도커의 기능을 완전하게 사용하려면 리눅스에서 사용하는것이 바람직 하다.)
데스크탑 GUI 도 포함되어 있어 CLI에 익숙하지 않은 유저도 편리하게 사용 가능하다.
저자의 경우 mac 이기에 아래와 같이 homebrew를 이용하여 설치를 진행한다.
$ brew install --cask docker
cask 를 넣는 이유는 GUI(화면이 있는 설치파일) 어플리케이션 설치이기에 넣어줘야 한다.
설치가 완료 되었음에도 불구하고 docker 라고 입력시 찾을 수 없다고 뜬다.
$ docker
zsh: command not found: docker
아래와 같이 docker 를 검색하여 실행을 최초로 해줘야 CLI 로 도커 사용이 가능하다.
docker를 검색하여 실행한다.
권한이 필요하다는 경고 창이 나오면 mac password 를 입력하면 상단에 고래 아이콘이 뜬다.
클릭 해보면 running 이라고 표기 되어 있어 실행중임을 확인 할 수 있으며,
dashboard 를 클릭한다.
아래와 같이 GUI 환경에서 관리 할 수 있는 dashboard 화면이 뜬다.
이제 CLI 환경에서 docker를 입력해보면 정상적으로 뜬다.
$ docker -v
Docker version 20.10.13, build a224086
kubectl 은 kubernetes 의 API 서버와 통신하여 사용자 명령을 전달할 수 있는 CLI 도구 이다.
$ brew install kubectl
kustomize는 kubernetes 의 매니페스트 파일을 좀 더 효율적으로 관리 할 수 있도록 도와주는 도구이다.
$ brew install kustomize
정상적으로 설치 됨을 확인 해보자
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/amd64"}
$ kustomize version
{Version:kustomize/v4.5.2 GitCommit:9091919699baf1c5a5bf71b32ca73a993e98088b BuildDate:2022-02-09T23:19:28Z GoOs:darwin GoArch:amd64}
만약 kubectl 설치시 이전에 설치한 버전과 충돌이 일어날시 아래와 같이 입력하여 해결 가능하다.
$ brew link --overwrite kubernetes-cli
minikube란 작은 kubernetes 로 복잡한 쿠버네티스 클러스터 구성 작업을 심플하게 한 쿠버네티스라고 할 수 있으며
학습시에는 서버 여러대를 마련할 수 없으므로 가상 환경을 사용하여 쿠버네티스 클러스터를 구현 할 수 있다.
실제 운영 환경에서 쓰기 어려우나 학습 용도로 적합하다.
자 설치 해보자!
$ brew install minikube
$ minikube version
minikube version: v1.25.2
설정 파일
$ cat ~/.kube/config
apiVersion: v1
clusters:
- cluster:
certificate-authority: ../.minikube/ca.crt
extensions:
- extension:
last-update: Fri, 25 Mar 2022 16:00:50 KST
provider: minikube.sigs.k8s.io
version: v1.25.2
name: cluster_info
server: https://127.0.0.1:50631
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: Fri, 25 Mar 2022 16:00:50 KST
provider: minikube.sigs.k8s.io
version: v1.25.2
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: ../.minikube/profiles/minikube/client.crt
client-key: ../.minikube/profiles/minikube/client.key
클러스터 상태 확인
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
$ kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:50631
CoreDNS is running at https://127.0.0.1:50631/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
클러스터명, 상태, 권한, 생성후 시간, 버전
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 7m57s v1.23.3
minikube 기본 사용법
// 클러스터 상태 확인
$ minikube status
// 쿠버네티스 클러스터 중지
$ minikube stop
// 쿠버네티스 클러스터 삭제
$ minikube delete
// 쿠버네티스 클러시터 일시중지
$ minikube pause
// 쿠버네티스 클러스터 재개
$ minikube unpause
addons 이란 minikube 에만 있는 기능으로 필요한 이미지를 손쉽게 다운하여 사용 할 수 있게 하는 기능이다.
아래와 같이 addons 리스트를 확인 할 수 있으며
$ minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | third-party (ambassador) |
| auto-pause | minikube | disabled | google |
| csi-hostpath-driver | minikube | disabled | kubernetes |
| dashboard | minikube | disabled | kubernetes |
| default-storageclass | minikube | enabled ✅ | kubernetes |
| efk | minikube | disabled | third-party (elastic) |
설치를 원할시 아래와 같이 입력하면 된다.
$ minikube addons enable [명칭]
도커 컨테이너에 접속하기 위한 명령어
$ minikube ssh
docker@minikube:~$
docker@minikube:~$ exit
$
쿠버네티스 버전과 동일한 kuberctl 의 버전 이용하여 버전 호환성 문제를 없게 하기 위해 제공하는 기능으로 아래와 같이 설치 가능하다.
$ minikube kubectl
$ minikube kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:25:17Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:19:12Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:19:12Z", GoVersion:"go1.17.6", Compiler:"gc", Platform:"linux/amd64"}
쿠버네티스 클러스터 버전 '1.23.3' 에 맞게 minikube kubectl 은 1.23.3 이 설치 되었다.
$ kubectl get node
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 27m v1.23.3
'ETC' 카테고리의 다른 글
[Docker] 설정 방법 및 실행중인 컨테이너 접속 (0) | 2022.03.25 |
---|---|
[Docker] 구성 및 기본 명령어 (0) | 2022.03.25 |
[Kubernetes & Docker] 무엇인가? (0) | 2022.03.25 |
5분 안에 구축하는 APIDoc (API 규격서) (0) | 2022.02.27 |
내 도메인을 만들어보자! (0) | 2022.02.02 |