Docker사에서 2013년에 만든 컨테이너 관리 도구로, 컨테이너 관리 기능 외에도 컨테이너를 실행하는데 필요한 이미지를 만들거나 공유하는 등의 다양한 기능을 제공한다. 도커는 사용자가 명령어를 입력하는 명령어 도구(CLI)와 명령을 받아들이는 도커 데몬으로 구성돼 있다.
도커로 애플리케이션을 실행하면 운영 체제 환경에 관계없이 독립적인 환경에서 일관된 결과를 보장
한다. 컨테이너 도구는 도커 외에도 컨테이너디, 크라이오, 파드맨 등이 있지만 현업에서 가장 많이 사용하는 소프트웨어는 도커이다.
도커는 '개발 - 테스트 - 배포 과정'을 간소화
한다.
도커는 컨테이너 기반 가상화 플랫폼으로,애플리케이션과 모든 종속성
을 독립적인 컨테이너로 패키징하고 배포
하는데 사용된다. 이렇게 패키징된 컨테이너는 어디서든 실행될 수 있으며, 개발 환경과 프로덕션 환경 간의 차이를 줄여준다. 이식성이 뛰어나므로 다양한 환경에서 애플리케이션을 실행할 수 있다.
같은 기능으로 가상머신(Virtual Machine)
과 비슷하지만 도커를 사용하면 리소스를 분리하여 사용하기 때문에 도커는 각 컨테이너를 격리된 환경에서 실행하므로 서로 영향을 미치지 않고 여러 애플리케이션을 동시에 실행할 수 있습니다. 이를 통해 리소스 사용을 효율적으로 관리하고 보안을 강화할 수 있습니다.
한줄요약
- 도커 : 종속성을 컨테이너라는 단일 단위로 패키징할 수 있는 컨테이너 플랫폼
- 장점 : 다양한 환경에서 쉽게 배포, 하드웨어 관계를 동일하게 시스템 실행 가능함
가상환경처럼 OS를 각각 운영하는 것은 비효율적
가상환경과는 다르게 OS를 공유하니 더 효율적으로 사용 가능
새로운 서버가 추가
되면 이것저것 설치할 필요없이 미리 만들어진 이미지를 다운로드 받고 컨테이너만 생성하면 되므로 서버 증설
이 매우 용이. 이러한 장점은 클라우드 환경에서 더욱 빛을 발함.
서버 사용량에 따라 클라우드 환경에서 on-demand로 서버를 증설하고 그 뒤 컨테이너를 띄우는 것 만으로도 새로운 사용자를 받아들일 준비가 된다.
environment disparity : 도커를 통해 다른 머신에서도 같은 환경을 구현할 수 있다
여러 버전과 여러 서비스들이 혼재하여 제공할 때 이를 확실히 구분할 필요가 있음
VirtualBox, VMware, 페러릴즈 등
OS 안에 OS를 설치하여 환경들을 확실히 분리하지만 효율적이지는 않다
컴퓨터와 성능과 자원이 환경마다 제한(20%, 50% 등)이 됨
업무공간은 확실히 분리되면서도 컴퓨터 자원을 공유하여 사용하여 낭비되는 공간이 크지 않음
서버 환경을 개발 환경과 동일하게 맞춰야 함
참고
https://www.youtube.com/watch?v=hWPv9LMlme8
https://www.youtube.com/watch?v=L3ZpudSF0HU&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&index=2
https://tech.ktcloud.com/73
https://velog.io/@dev_albatross53/%EB%8F%84%EC%BB%A4-%EC%A0%95%EB%A6%AC