CS

Docker | 컨테이너, 도커, 쿠버네티스 아주 기초적인 개념

개발 공부 2024. 11. 23. 00:14

컨테이너

컨테이너 = 서버

서버는 소프트웨어(프로그램)가 실행되는 하드웨어를 의미한다.

 

서버는 회사에 있는 서버실 서버를 사용할 수도 있고, 클라우드와 같은 온라인 서버를 사용할 수도 있다.

 

우리가 개발한 소프트웨어는 메모리가 2~4G만 되어도 충분히 실행할 수 있다.

서버실 서버는 메모리가 32~64G이기 때문에 하나의 서버에서 많은 소프트웨어를 사용해야 효율적이다.

 

그러나 소프트웨어는 다운되면 서비스 장애로 이어지므로 하나의 서버에서는 하나의 소프트웨어만 실행하는 것이 안전하다.

하지만 64G 서버에 하나의 소프트웨어만 실행시키는 것은 너무 비효율적이다.

 

그래서 가상화라는 기술이 나왔다!

가상화 기술

서버에 임시의 벽을 만들어 소프트웨어가 실행되는 공간을 분리해서 사용한다.

하나의 서버에서 여러개의 프로그램을 안전하게 실행할 수 있다.

 

기존에는 가상화기술로 VM (Virtual Machine 가상머신)을 사용했었는데,

가상머신의 단점은 프로그램을 실행하고 업그레이드 하는데 오래 걸린다.

 

그래서 지금은 가볍고 빠른 컨테이너(Container) 를 많이 사용하는 방식으로 많이 전환하고 있는데, 

컨테이너의 또 다른 큰 장점은 컨테이너를 만들어놓고 컨테이너를 통째로 옮길 수 있다는 것이다.

 

결론: 컨테이너를 사용하면 한 대의 서버에서 여러개의 소프트웨어를 안전하고 효율적으로 운영할 수 있다!

도커

컨테이너를 관리하기 위한 도구로 일종의 프로그램이다.

쿠버네티스

서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구이다.

우리가 쿠버네티스한테 원하는 상태를 문서로 정리해서 주면 알아서 도커들을 통해 컨테이너를 관리해준다.

 

 

 

참고: https://www.youtube.com/watch?v=eRfHp16qJq8