도커는 뭔가요?

jik·2023년 8월 10일
0

도커란 무엇인가요? -> 가상머신이랑 뭐가 다른가?

안녕하세요.

도커란 무엇인가?
애플리케이션을 컨테이너화해 개별적으로 더 쉽게 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트입니다.

컨테이너란?

  • 컨테이너 내부에 물건을 담을수 있습니다.
  • 물건을 넣고 꺼낼수 있는 문이있습니다. (도커관점:외부세계와 상호작용 할 수 있는 포트가 있습니다)

가상머신이랑 다른점은 무엇인가요??

가상화는 운영 체제가 에뮬레이션되는데 반해 컨테이너는 호스트 시스템의 커널을 공유, 리소스를 효율적으로 사용 합니다.

hypervisor: 가상 머신(VM)을 생성하고 실행하는 프로세스

docker

docker-image?

read-only, code,library등 모두 함께 번들로 포함된 master template입니다.
모두 정확히 동일한 container를 generation합니다.


다양한 틀이 있지만 언제나 동일한 이미지를 사용하면 동일한 결과만 찍힙니다.

docker-file?

docker-image를 만드는데 필요한 지침을 지정한 텍스트 파일 입니다.
python application docker-file에는 numpy, pandas를 추가하도록 지침을 지정할 수 있는것과 같습니다.

container-runtime?

docker image가 실행되면 컨테이너 런타임 이용해 container로 인스턴스화 됩니다.
컨테이너 런타임에 의해 격리된 환경에서 네임스페이스를 설정하고,리소스할당, 네트워킹관리, 액세스제어등 컨테이너가 호스트 시스템으로부터
격리된 상태로 유지되도록 합니다.
docker는 여러 container-runtime을 지원하는데 runc라는 기본 runtime (docker-engine)이 일반적입니다.

docker 아키텍처?

아래 세가지 주요 구성요소로 구성된 client-server model입니다.

  • docker-client : 사용자가 docker와 상호작용하는 기본 인터페이스 역할을 담당
  • docker-demon : container build, exec, manage를 담당
  • docker-registry : docker 이미지가 저장되는 repository 역할. (npm , maven과 같은)

container orchestration

docker swarm이나 k8s을 이용해 이런 개별 컨테이너들의 배포를 오케스트레이션 할 수 있습니다.
이런 도구를 사용하면 컨테이너의 배포,확장 부하분산을 용이하게 만들고 고가용성과 내결함성을 보장합니다.

0개의 댓글