Docker

space's pace·2022년 6월 29일
0

프론트엔드

목록 보기
7/15

도커(Docker)란?


도커(Docker)는 *리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 가상화 플랫폼이다.
도커(Docker)를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있다.
도커(Docker)를 통해 OS를 공유, 격리화하여 관리할 수 있다.


가상화를 왜 사용하는 걸까?

향상된 컴퓨터의 성능을 더욱 효율적으로 사용하기 위해 가상화 기술이 많이 등장하는 요즘, 서버 관리자 입장에서 CPU사용률이 10%대 밖에 되지 않는 활용도가 낮은 서버들의 리소스 낭비일 수 밖에 없다. 그렇다고 모든 서비스를 한 서버 안에 올린다면 안정성에 문제가 생길 수도 있다. 때문에, 안정성을 높이며 리소스도 최대한 활용할 수 있는 방법으로 나타난게 서버 가상화이다. 모두가 아는 대표적인 가상화 플랫폼으로는 VM이 있습니다.


컨테이너란?

컨테이너는 가상화 기술 중 하나로 대표적으로 LXC(Linux Container)가 있다. 기존 OS를 가상화 시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이루어진다.

한 서버의 여러 OS를 가상화 하여 사용하는 것과 컨테이너 방식으로 프로세스를 격리시켜 동작하는 방법은 어떠한 차이점이 있을까?


기존에 우리에게 익숙한 VM같은 경우엔 Host OS 위에 가상화를 시키기 위한 Hypervisor 엔진 그리고 그 위에 Guest OS를 올려 사용한다. 이는 가상화된 하드웨어 위에 OS가 올라가는 형태로 거의 완벽하게 Host와 분리된다고 봐도 무방하다. 반면에 컨테이너 기반 가상화는 Docker 엔진 위에 Application 실행에 필요한 바이너리만 올라가게 된다. OS 가상화를 보면 Host OS와 완전히 분리되는 장점은 있지만 OS위에 OS를 올리기 때문에 무겁고 느릴 수 밖에 없다. 하지만 컨테이너 기반 가상화Host OS 그리고 Docker 엔진 위에서 바로 동작하며 Host의 커널을 공유합니다. 커널을 공유하게 되면 io처리가 쉽게 되어 성능의 효율을 높일 수 있습니다.

즉 , 컨테이너를 사용하는 것은 가상 머신을 생성하는 것이 아니라 Host OS가 사용하는 자원을 분리하여 여러 환경을 만들 수 있도록 하는 것이다.



컨테이너 기술로 도커는 어떤 문제를 해결할 수 있나?

  • 환경 표준화를 통한 생산성 UP
  • 환경 구성 코드로 제공을 통한 생산성 UP
  • 리소스 격리성을 통한 응용 프로그램 + 실행 환경 분리


도커와 가상 머신의 공통점과 차이점

엄밀히 말해서 컨테이너 기술과 가상 머신의 비교이다.

💬 공통점

가상 머신과 도커는 리소스 격리성을 제공하는 기술이다.
리소스 격리성 기술로 애플리케이션마다 다른 컴퓨터에서 실행되는 것처럼 IP나 PORT 등을 다르게 설정할 수 있다.

💬 차이점

가상 머신은 OS 단위 가상화, 도커는 애플리케이션 단위 가상화를 한다.



출처
도커(Docker)란? – 필요성 | https://hanamon.kr/%EB%8F%84%EC%BB%A4%EB%9E%80-docker-%ED%95%84%EC%9A%94%EC%84%B1/

[Docker] Docker의 개념 및 핵심 설명https://khj93.tistory.com/entry/Docker-Docker-%EA%B0%9C%EB%85%90

profile
블로그 이사 준비중!

0개의 댓글