1. Docker 란?
컨테이너 기반의 오픈소스 가상화 플랫폼이다. 소프트웨어를 container라는 표준화된 유닛으로 패키징하며, 이 container에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있다. 즉, 실행환경을 container로 추상화하고 동일한 인터페이스를 제공하여 환경에 구애받지 않고 애플리케이션을 신속하게 배포, 확장 및 관리할 수 있게 해준다.
이렇게 생성된 container는 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화할 수 있고 조립 pc, aws, azure, google cloud 등 어디에서든 실행할 수 있다.
2. Container 란?
docker는 코드를 실행하는 표준 방식을 제공한다. docker는 컨테이너를 위한 운영 체제다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게 컨테이너는 서버 운영 체제를 가상화한다. 그리고 docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공한다.
컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이다. 가상화 기술의 하나지만 기존방식과는 차이가 있다. 기존의 가상화 방식은 주로 OS를 가상화했다.
이 방식은 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용하는 방식이다. 이 방식은 여러가지 OS를 가상화할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없었다. 간단하게 말해서 각각의 가상머신이 OS를 자체적으로 가지고 있어 OS를 가상머신 이미지에 포함해야 하고, 배포이미지의 용량이 커지게 된다는 단점이 있다.
도커를 사용해서 필요한 시스템이나 서버의 image를 만들고 container에 그 이미지를 담아 가상머신(VM)에서 실행하는 것…
도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.