내가 간과하고있었던 부분.
dockerfile 이 거기에 왜 있어야하는지 몰랐음.
yaml 파일이 어디에 쓰이는지도 몰랐음.
minikube, 쿠버네틱스 환경에 대해서 잘 알지 못했음.
(사실 궁금해도 안함.ㅋㅋㅋㅋ)
하나씩 의식의 흐름대로 찬찬히…
미니큐브 : 로컬 쿠버네티스 클러스터를 만들어서 사용하는것.
여기서 모르는거 : 클러스터 ? 뭐 어쩌라고 클러스터야.
로컬 쿠버네티스 : 운영이랑 동일한 환경을 셋팅하려고 하는건가?
한번 검색해보니 바로 도커 오케스트레이션 내용이 나옴.
도커 오케스트레이션
도커 : 컨테이너를 올리는.. 뭐야
도커: 서버관리 귀찮음 버전 디펜던시들 어떻게 감당해.
환경이 바뀔때마다 계속 설치, 설정 다시 해줘야하는것 귀찮고.
마이크로 서비스 흐름으로 인해서 배포 주기도 빨라짐.(여기서 나오는 주제 : DevOps)
그래서 운영환경에서 필요한 모든것을 다 들고 환경 생각할것 없이 배포해서 사용할수있게 해주는것이 도커와 컨테이너의 개념인데(이렇게 도커랑 컨테이너를 두루뭉실하게 넘어갈 생각은 하지말고.)

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼.
(근데 참고한 영상에서는 이미지 라는 개념이 또 나옴)
그럼 컨테이너는 무엇인가.
컨테이너는 프로세스 동작을 위해서 격리 시켜놓은 곳으로 가상 컴퓨팅 환경에서 운영체제 및 서비스가 통으로 동작할수있는 플랫폼 인것이다.(아래의 컨테이너-x 들 참고) .
그러니 어디에서든 인프라가있는곳에서는 프로세스가 격리화 되어서 동작이 가능한 것이다.

하나의 컴퓨터(서버든 내가 가진 렙탑이든, 어디든 마더보드 위의 어떠한 환경 .. 흠.. 컴퓨터는 뭐라고 정의해야할까?)에 여러개의 컨테이너를 실행하면 마치 각자 독립적으로 실행시킨 운영체제처럼 실행 될 수 있다. 이것 위에서는 명령어도 입력할수 있고 사용자도 추가할수 있고 여러개의 프로세스를 실행할수도 있는것이다.
그럼 도커이미지는 뭐지.
위의 컨테이너를 실행시킬때 필요한 파일이나 설정값들을 포함하고있는것. 이 이미지는 변하지 않는다.
컨테이너는 이미지를 실행시킨 상태인 것.
이미지는 변경될수 없고(immutable) 실행중에 변하는 값이 있으면 컨테이너에 저장된다.
그러니 이미지는 컨테이너 실행에 필요한, 이미 컴파일이 되어서 설치 되어있는 상태이고 컨테이너가 실행되는것은 완제품에 “on” 을 해주는 것.
여기서 이미지는 도커이미지를 말하는것이고,
도커 이미지는 docker hub 이라는 (전세계 인터넷이 되는곳이면 어디서든 가능한) docker registry(도커 등기소?) 가 인터넷상에서 존재하는 것이다.
도커 이미지로 말려있는 것은 카프카, mysql,등등 일반 상용화되어서 사용될수있는 거의 모든것들이 이미지로 등록되어있다.
도커 이미지는 어디가 되었든 저장소 역할을 할 수있는 Docker Registry 저장소에서 (혹은 Docker Registry)를 직접 만들어 관리할 수 있습니다. 도커 이미지는 누구나 쉽게 만들고 배포가 가능하기 때문이다.
자 그럼 도커 이미지까지 알아봤는데..
그럼 이걸 어떻게 사용할 수 있는거지?
위에서도 말했듯이 도커이미지는 누구나 쉽게 만들수 있고 또 배포도 가능하다.
도커이미지를 만들기 위해서는 Dockerfile
이라는 파일에 이미지 생성과정이 기술되게 되는데, 이때 필요한 모듈들이 추가되는 것이다. 이 도커파일은 DSLDomain-specific language언어를 사용하여서 기술이 된다. 이 파일은 뭐 그저 텍스트 파일처럼 적어져서 (마치 견우가 전지현의 미래 남편에게 적어주는 쪽지처럼) 필요한것들이 적어져있는 형태이다.
예를들어서
내가 사용자에게 입력을받아서(웹서비스1) 그 입력값을 저장(db)해서 리스트업해주고(웹서비스1) 검색이 가능하게(검색엔진) 해줄 서비스가 있다고 가정했을때,
원하는 사이즈에 맞게 도커 이미지로 올릴수있다. 나는 웹서비스한개와 저장소 하나 검색엔진 하나 이렇게 세개를 따로따로 올린다고 가정하자. 그럼 이 세개를 내 입맛에 맞게 설정해서 도커 레지스트리에 등록을하면 고래(머신) 위에 컨테이너세개를 올리는 것이다.
-내 인생 사부 말씀 발췌
도커는 모든.컨테이너를 들고 있지않아. 자기가 들수 있을만큼만 들고 있는거고
여러 고래에게 이를 잘 나눠서 고래단체를 운영하는(오케스트레이선) 해주는게 쿠버네티스야
즉 쿠버네티스는 컨테이너를 들고있어야할 고래들을 관리해주는것이다.
(미니큐브는 그걸 한개의 커뮤터에서 개발자가.테스트 해볼수 있게 하는것)

컨테이너 오케스트레이션 툴.
단순 컨테이너의 배포 뿐만이 아닌 하나의 서비스를 관리하고 유지보수 하기 위한 많은 기능들을 포함하고 있음.