96일차 - Docker란 무엇인가?

김민찬·2021년 8월 13일
0

취업으로의 여정

목록 보기
97/196

오늘의 주제는 도커이다.

docker는 'environment disparity'라는 문제점을 해결해준다.
'environment disparity'는 개발환경에 맞지않는 상태로 만약 윈도우로 개발하고 서버로 전송했는데, 서버는 리눅스라서 오류가 나는 현상을 말한다.
Docker를 통해서 다른 머신에서도 같은 환경을 구현할 수 있기 때문이다.

도커에 대해서 공부하다 보면 가상화 기술과 비슷하다는 생각이 날 수 있다.
하지만 두 기술에는 차이점이 존재한다.
그 이유는 도커는 컨테이너라는 것을 사용하기 때문이다.

  • 가상화는 단일 하드웨어 시스템에서 여러 운영 체제(Windows 또는 Linux)가 동시에 실행될 수 있도록 한다.
  • 컨테이너는 동일한 운영 체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스를 격리한다. 예를 들어, ARM Linux 시스템은 ARM Linux 컨테이너를 실행하고, x86 Linux 시스템은 x86 Linux 컨테이너를 실행하고, x86 Windows 시스템은 x86 Windows 컨테이너를 실행한다.

그래서 하나의 서버에 여래 개의 컨테이너를 생성해서, 다양한 컨테이너들을 관리할 수있다.
서버를 증설하려고 할때, 새로운 서버를 매번 샀다가 취소할 필요없이 컨테이너를 추가로 생성하거나 삭제하면 된다.

가상 컴퓨팅은 한 물리적 컴퓨터 안에 각각 OS를 가동하는 가상 컴퓨터들이 물리적 자원을 분할해서 쓰기 때문에 성능의 한계가 생긴다.
하지만 도커는 OS단 까지 내려가는 것이 아니라, 실행 환경만 독립적으로 돌리는 것이라서 컴퓨터에 직접 요소들을 설치한 것이랑 비슷한 성능을 낼 수 있고, 가상 컴퓨팅보다 훨씬 가볍고 빠르게 각각을 실행하고, 종류할 수 있다.
만약 서버에 무엇이 잘못되거나 고쳐야 할때 일일이 요소들을 정지하고 지우고 새로 깔거나 할 필요없이 컨테이너를 통채로 교체하면 된다.

자료 출처:
노마드코더 - Docker
Red Hat - Docker
얄팍한 코딩사전 - Docker

사진 출처:
Red Hat - Docker

profile
두려움 없이

0개의 댓글