본문 바로가기
책으로 하는 공부

[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 첫 번째 이야기

by 뿔난 도비 2024. 8. 10.
반응형

본 게시글은 시리즈 게시글이며, "그림으로 배우는 도커 & 쿠버네티스" 책을 읽고 정리한 내용을 담고 있습니다. 제 스스로 책 내용을 더 오랫동안 기억하기 위한 목적 이외에도 책을 읽을 시간이 없는 분들에게는 제 게시글이 도움이 되었으면 합니다.
 

 그림과 실습으로 배우는 도커 & 쿠버네티스 - 첫 번째 이야기

 

도커란 무엇인가?

 

1. 도커란 무엇인가?

2. 왜 독립된 환경에 격리하는가?

3. 서버의 의미는 무엇인가?

4. 도커와 가상화 기술과의 차이는 무엇인가?

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
 

도커란 무엇인가?

데이터 또는 프로그램을 격리시키는 기능
  • 현재는 주로 서버에서 사용된다.
  • 프로그램, 데이터를 독립된 환경에 격리하는 기능을 제공한다.
  • 예를 들면, 아래의 그림과 같다.

일반적인 환경에서 실행되던 프로그램들을 도커로 옮겨 실행하는 경우의 예시

  • 그림과 같이 독립된 공간에 프로그램을 격리시키는데 이 독립된 공간을 "컨테이너"라고 한다.
  • 이런 컨테이너들을 관리하는 기능을 제공하는 소프트웨어가 "도커"이다.
    • 컨테이너를 만들기 위해서는 도커 엔진과 이미지가 필요하다.
    • 이미지는 빵을 찍어내는 빵틀과 같다고 생각하면 된다. 하나의 이미지로 똑같은 구성의 컨테이너를 여러 개 생성할 수 있다.
  • 기본적으로 도커를 구동하기 위해서는 리눅스가 필요하다.
  • 그런데 윈도우에도 도커 설치 가능한데요? 내부적으로 리눅스를 사용하고 있다...

왜 독립된 환경에 격리하는가?

  • 하나의 프로그램은 실행 환경, 라이브러리 그리고 다른 어떤 프로그램들에 의존적이다.
  • 프로그램 간에 이런 것들이 공유되다 보면 문제가 생길 수 있다.
  • 예를 들면, 아래의 그림과 같다.

프로그램 간의 공유로 인해 발생될 수 있는 문제의 예시

  • 그래서 프로그램 별로 독립적인 환경이 필요하다.
  • 한 대의 물리적인 컴퓨터에서 도커를 통해 다양한 실행 환경을 구성하는 것이 가능하다.

서버의 의미는 무엇인가?

어떤 서비스 (Service) 를 제공하는 것
  • 서버의 의미는 크게 두 가지로 구분될 수 있다.
  • 기능적 의미의 서버: 무슨 무슨 기능을 제공한다는 의미를 갖는다.
    • 웹 기능 제공 = 웹 서버
    • 메일 기능 제공 = 메일 서버
  • 물리적 컴퓨터로서의 서버: 데스크톱과 마찬가지로 물리적으로 존재하는 컴퓨터를 의미한다.
  • 서버는 기본적으로 여러 사람이 원격으로 접근해 사용하고, 여러가지 소프트웨어를 설치해 하나의 물리적 컴퓨터에서 여러 기능을 제공할 수 있다.
  • 다시 말해 한대의 컴퓨터에서 여러 소프트웨어를 안정적인 환경에서 동작시키기 위해서는 도커가 필요하다!
  • 왜?? 소프트웨어를 독립적인 환경에서 실행시키니까!!
  • 또한 비용도 절감 가능하다. 하나의 물리 서버만 있으면 여러 기능을 제공할 수 있기 때문이다.
  • 마지막으로 도커의 컨테이너는 쉽게 옮길 수 있다는 장점을 가진다.
    • 실제로는 정보를 내보내고, 다른 도커 엔진에서 복원하는 형태이다.
  • 결론적으로, 도커만 설치되어 있으면 물리적 환경의 차이, 서버 구성의 차이를 무시하는 것이 가능하다.

도커와 가상화 기술과의 차이는 무엇인가?

  • VirtualBox, VMware, AWS EC2와 같은 가상화 기술은 가상의 물리 서버를 생성하는 것을 의미한다.
  • 즉, 메인보드와 CPU, 메모리 등의 물리적인 부품을 소프트웨어로 구현하는 것이다.
  • 반면 도커는 컨테이너 별로 리눅스가 동작하는 것처럼 보여지지만 실제로는 운영체제의 기능을 호스트 역할의 물리 서버가 해준다.
  • 이 점 때문에 물리 서버에도 리눅스가 필요하고, 컨테이너의 내용도 리눅스 운영체제가 될 수 밖에 없다.


 

연관 도서

https://www.yes24.com/Product/Goods/108431011

반응형