본문 바로가기
INFRA/DevOps

Container & Docker 기본

by BTC_룰루랄라 2022. 4. 6.

반갑습니다! BTC 룰루랄라 입니다 :)

이번 포스팅에서는 Kubernetes를 알기 전 Container와 Docker에 대한 기본 지식에 대해서 전달해 드리려고 합니다!

그럼 시작해 보도록 하겠습니다. 룰루랄라~♬

 

1. Container란?

Container란 무엇일까요? Virtual Machine과는 어떻게 다를까요?

일반적인 가상 머신은 Host OS에 Hypervisor를 설치하고 그 위에 Guest OS를 동작 시키는 형태로 동작합니다.

컨테이너 기술은 Host OS에 Container Runtime을 올리고 그 위에 Processor로서 Container를 동작시킵니다.

컨테이너란 Host OS의 커널을 공유하면서 분리된 Process로서 실행해 마치 가상 머신이 움직이고 있는 것처럼 보이게 하는 기술입니다.

컨테이너의 실체는 단순한 Process이므로 VM에 비해 매우 가볍고 빠르게 동작 할 수 있습니다.

 

2. Docker란?

Docker는 container를 동작시키기 위한 engine 중 하나입니다. 2013년에 dotCloud에 의해 최초로 발표 및 공개되어 지금까지 꾸준히 사용되어 지고 있습니다. container 자체는 새로운 기술이 아니었지만, 다음과 같은 이유로 단기간에 개발자들의 지지를 큰 지지를 얻었습니다.

첫 번째는, container 관리 방식입니다.

Docker에서는 Dockerfile이라는 정의 파일을 작성하여 동일한 container Image를 간단히 만들 수 있습니다. 이는 IaC(Infrastructure as Code)를 구현하는데 매우 적합한 software입니다. 또 container Image에는 application과 그 실행 환경 설정이 포함되어 있기 때문에 Docker Engine만 설치되어 있다면, 그 application의 동작이 보장된다는 장점도 있습니다.

두 번째는, container Image를 저장, 공유하기 위한 에코시스템이 초기부터 준비되었다는 점입니다.

생성한 container Image는 각 환경에 확실히 배포할 수 있어야 의미가 있습니다. Docker는 Docker Hub라고 하는, container image를 저장 및 공유할 수 있는 container repository가 제공됩니다. Docker push/pull 명령으로 간단히 Docker Hub에 container image를 전송하거나 다운로드 할 수 있습니다. 이를 통해 application을 배포할 때 환경 설정 차이로 인해 발생하기 쉬운 문제를 해결 할 수 있습니다. 즉, 개발환경에서 staging 환경, 서비스 환경으로 동일한 container image를 배포할 수 있으므로 test를 거친 container image를 서비스 환경에 안정적으로 배포할 수 있습니다.

 

이상 Kubernetes를 알아보기 전 Docker와 container에 대해 간단히 알아보았습니다.

다음 시간에는 Kubernetes에 대해 간단히 알아보고, 실제 managed 환경인 AWS EKS에 대해서 알아 보도록 하겠습니다. 

감사합니다 :) 

 

 

참고 문헌

클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트

https://www.slideteam.net/docker-architecture-containerization-a-step-forward-for-digital-transformation-ppt-powerpoint-layouts.html

'INFRA > DevOps' 카테고리의 다른 글

kubernetes 설치 방법  (0) 2022.04.20
애자일 소프트웨어 개발 방법론  (0) 2022.04.14
쿠버네티스 환경  (0) 2022.04.13
DevOps란 무엇일까?  (0) 2022.04.08
쿠버네티스란 ?  (0) 2022.04.06

댓글