본문 바로가기

도커 & 쿠버네티스

Docker 란 무엇일까?

 

이미지 출처 : https://martinmueller.dev/alfresco-docker-installer-eng/
이미지 출처 : https://twitter.com/docker

Docker 도커란 무엇인가?

위의 엄청 귀엽게 생긴 고래는 Moby dock 이라고 하는 도커의 마스코트인 고래다 진짜 너무 귀엽다 헉헉 

그럼 이 귀여운 친구가 왜 핫한지 알아보는 시간을 가지고자 한다. 

도커를 간단하게 말하자면 '컨테이터 기반의 오픈소스 가상화 플랫폼' 이라고 말할 수 있는데, 아니 오픈소스는 알겠는데.. 컨테이너는 뭐고 가상화는 뭐야..? 라고 질문할 수 있다.

 

Container 컨네이너 & 가상화

가상화가 뭐지? - 쉽게 말해서 하나의 물리적 서버에서 여러 운영체제와 어플리케이션을 동작하도록 하는  소프트웨어 기술

 

출처 : https://www.redhat.com/ko/topics/virtualization/what-is-virtualization

위와 같이 메일, 웹, 레거시 앱 서버가 있다고 가정하자, 각 서버는 30%정도 밖에 사용을 하고 있지 않지만, 가상화 기술이 등장하기 전에는 1개의 서버가 여러 Task를 처리하는 일이 쉽지 않았지만, 가상화를 사용하면 아래와 같이 작업할 수 있다.

출처 : https://www.redhat.com/ko/topics/virtualization/what-is-virtualization

그럼 자동적으로 남는 서버는 재사용해서 다른 일을 처리해서 생산률을 높이거나 서버를 중지시켜서 유지관리 비용을 줄일 수 있다.

 

컨네이너는 뭐지? - 격리된 공간에서 프로세스가 동작하는 가상화 기술의 일종

 

출처 :https://www.docker.com/resources/what-container 컨테이너와 VM의 차이

컨테이너라는 개념이 Docker에서 처음 나온 개념은 아니다. 예전 가상화에서 Guest OS를 가상화 하는 방식이 무겁고 느려서 성능적인 부분에서 문제가 발생하기에 이를 개선하기 위해서 프로세스를 격리하는 개념이 등장하였고, 대표적으로 LXC (Linux container)가 있다.

 

컨테이너의 장점

  • 빠른 속도와 효율성, 낮은 오버헤드 - 하드웨어 에뮬레이션이 없기 때문에 VM과는 비교과 되지 않을 정도로 빠름
  • 높은 집적도 - 여러개의 컨테이너를 만들어도 하나의 OS에서 돌아가기 때문에 VM에 비해서 높은 집적도를 가짐
  • 작은 파일 크기 - OS를 포함하지 않기 때문에 VM보다 파일 크기가 엄청 작은 편
  • 다양한 운영 환경 지원 - Mac, Window, Linux, VM, 베어 메탈 등 거의 모든 환경에서 구동이 가능하기 때문에 개발 및 배포가 용이

 

Image

Image란? - 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있으며 상태값을 가지지 않고 변하지 않는다. 컨테이너는 이미지가 실행된 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장된다. 같은 이미지에서 여러 컨테이너를 생성할 수 있으며, 컨테이너의 상태가 변하거나 삭제되더라도 이미지의 상태는 변하지 않고, 삭제되지 않는다. 도커 이미지는 Dockerhub (github생각하면 될듯) 을 통해서 버전 관리 및 배포도 가능하다. 도커는 이미지 파일을 Dockerfile 이라고 만든다.

출처 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

 

참고자료

https://www.docker.com/

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/

 

[Docker] 개념 정리 및 사용방법까지.

 

cultivo-hy.github.io

https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

초보를 위한 도커 안내서 - 도커란 무엇인가?

도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이

subicura.com

https://www.redhat.com/ko/topics/virtualization/what-is-virtualization

 

가상화(Virtualization)란? - 정의, 기술, 장점 및 단점

가상화 기술이란 하드웨어에 종속된 컴퓨터 리소스를 추상화하여 서버, 스토리지, 네트워크 등의 소프트웨어 IT 서비스를 생성하는 솔루션을 뜻합니다.

www.redhat.com