도커 기본 개념 정리

lionloopy·2024년 11월 26일
0

오늘의 공부

목록 보기
11/22
post-thumbnail

도커

도커는 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이다.
가상화란, 물리적 자원인 하드웨어를 효율적으로 활용하기 위해 하드웨어 공간 위에 가상의 머신을 만드는 기술이고,
컨테이너란, 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술이다.

즉, 도커는 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술이다.

  • 개발 과정에서 다른 라이브러리와 충돌하는 것을 방지하기 위해 격리된 환경이 필요할 때
  • 완성된 서비스를 배포할 때
  • 서버가 여러대일 때 하나하나 각각 파일 받고, 라이브러리 설치하고.. 할 필요 없이 이미지를 실행해서 컨테이너로 만들면 됨!

가상화

분할된 가상 머신들은 각각 독립적인 환경으로 구동되는데,
이 때 베이스가 되는 기존의 환경을 host OS, 가상머신으로 분할된 각각의 환경을 guest OS라고 한다.

하이퍼바이저

가상머신을 생성하기 위해서는 하이퍼바이저(가상 머신 모니터) 라고 불리는 소프트웨어를 이용한다.
호스트 하드웨어에 설치되어 호스트와 게스트를 나누는 역할을 하고,
각각의 게스트는 하이퍼바이저에 의해 관리되며 시스템 자원을 할당받는다.
하지만 하이퍼바이저를 반드시 거쳐야 하기 때문에, 속도 저하가 발생하낟.

컨테이너

하이퍼바이저와 달리, 컨테이너는 가상의 OS를 만들지 않는다.
베이스 환경의 OS를 공유하면서 필요한 프로세스만 격리하는 방식으로 커널을 공유한다.
대신 용량이 작아지고 하이퍼바이저를 거칠 필요가 없어 실행 속도가 빨라진다.

도커 이미지

도커 이미지는 가상 머신이나, 컨테이너 또는 프로그램을 실행하는데 필요한 파일과 라이브러리, 설정등을 가지고 있는 파일이다.
이미지는 레이어라는 계층 구조로 이루어져 있는데, 변경사항이 생기면 새로운 레이어를 추가해서 기록한다.

즉, 이미지는 컨테이너를 실행하기 위한 모오오든 젖ㅇ보를 가지고 있어서
의존성 파일을 컴파일하고 이것저것 설치할 필요가 없어진다.
새로운 서버가 추가되면, 미리 만들어놓은 이미지를 다운 받고, 컨테이너를 생성만 하면 된다.

한 서버에 여러개의 컨테이너를 실행할 수 있고, 수천대의 서버도 문제가 없다.
이미지를 실행하면 프로세스, 즉 컨테이너가 된다.

참고

https://velog.io/@markany/%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%96%B4%EB%96%A4-%EA%B2%83-1.-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

profile
기록은 담백하게, 성장은 빠르게! 🐘

0개의 댓글