Docker 란?
- 컨테이너를 사용해서, 응용 프로그램을 더 쉽게 만들고 배포하고 실행하도록 설계된 도구
- 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계이다
- 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일 인터페이스를 제공해서 프로그램의 배포 및 관리를 단순하게 해준다
- 일반 컨테이너 개념에서 물건을 쉽게 운송해주는 것과 같이 프로그램을 쉽게 이동해서 배포하고 관리가 가능하다
그렇다면 여기서 "컨테이너"는 무엇일까?
우리가 아는 컨테이너와 비슷하다.
근데 그걸 구체적으로 하면, 아래와 같다.
(추상적으로만 ~와 같다보다 더 자세히 공부하는 습관을 들여야 한다. 😢)
Docker 에서 컨테이너란?
코드와 모든 종속성을 패키지화 해서 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로
빠르고 안정적으로 실행되도록 하는 소프트웨어 표준 단위 이다.
컨테이너 이미지는 무엇일까?
- 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램 실행에 필요한 모든 것을 포함하는 가볍고 독립적이고 실행 가능한 소프트웨어 패키지이다.
- 런타임에 컨테이너가 되고, 도커 컨테이너 경우에는 도커 엔진에서 실행될 때 "이미지"가 "컨테이너"가 된다.
- 컨테이너는 소프트웨어를 환경으로부터 격리시키고, 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록 보장한다.
도커와 우리가 아는 VM과 무슨 차이가 있는지에 대한 것은 다음에 정리해서 추가글을 올리겠다.
그러면 이 도커가 왜 좋은지도 함께 설명할 수 있을 것 같다.