역사 Docker Inc.는Y CombinatorSummer 2010 스타트 업 인큐베이터 그룹에서 Kamel Founadi, Solomon Hykes 및 Sebastien Pahl에 의해설립되었으며 2011년에 시작되었습니다. 이 스타트 업은Founder 's Den첫번째 코호트의12 개 스타트 업 중 하나이기도합니다. Hykes는 Platform-as-a-Service 회사인 dotCloud의 내부 프로젝트로 프랑스에서 Docker프로젝트를 시작했습니다.
Docker는2013년PyCon에서 Santa Clara의 대중에게 공개되었습니다. 2013년 03월에오픈 소스로 출시되었습니다. 당시에는LXC를 기본 실행 환경으로 사용했습니다. 1년 후 버전 0.9가 출시되면서 Docker는 LXC를Go프로그래밍 언어로 작성된 자체 구성 요소 인libcontainer로 대체했습니다.
도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다
도커는 리눅스 커널의 가상화 기능에 접근하기 위해 각기 다른 인터페이스를 사용할 수 있다.
리눅스 커널의 이름공간 지원은 대체적으로 프로세스 트리,네트워크 사용자 ID, 마운트된 파일 시스템을 포함한 운영 환경에 대한 응용 프로그램의 관점을 격리시키지만, 커널의 cgroup들은 CPU, 메모리, 블록 입출력, 네트워크를 포함한 리소스 제한을 제공한다. 버전 0.9부터 Docker는 libvirt,LXC(리눅스 컨테이너),systemd-nspawn을 통한 추상화된 가상화 인터페이스를 사용하는 것 뿐 아니라 리눅스 커널이 제공하는 가상화 기능을 직접 사용하기 위한 유일한 수단으로libcontainer라이브러리를 포함하고 있다.
개요 Docker는 모든 Linux, Windows 또는 macOS 컴퓨터에서 실행할 수있는 가상 컨테이너에 애플리케이션 및 해당 종속성을 패키징 할 수 있습니다. 이를 통해 온 프레미스, 퍼블릭 클라우드 및 / 또는 프라이빗 클라우드와 같은 다양한 위치에서 애플리케이션을 실행할 수 있습니다.
Docker 컨테이너는 경량이기 때문에 단일 서버 또는 가상 머신이 여러 컨테이너를 동시에 실행할 수 있습니다. 2018년 분석에 따르면 일반적인 Docker 사용 사례에는 호스트 당 8 개의 컨테이너 실행이 포함되며 분석된 조직의 1/4은 호스트 당 18개 이상을 실행합니다.