What is a Container?

Huisu·2023년 3월 14일
0

Article

목록 보기
2/3
post-thumbnail

What is a Container?

What is a Container? | Docker

Summary

  • Container 한 컴퓨터 환경으로부터 다른 컴퓨터 환경에서 빠르고 안정적으로 앱이 실행될 수 있도록 모든 코드와 그의 의존성을 묶은 소프트웨어의 표준화된 규격이다. Docker의 container image는 앱을 실행하기 위한 코드, 런타임, 시스템 도구, 시스템 라이브러리나 세팅 등이 포함된 가볍고 안정적이고 실행할 수 있는 소프트웨어이다. Container image는 런타임에 containers가 되고, 특히 Docker의 경우 Docker Engine에서 돌아갈 때 image가 container가 된다. containerized된 소프트웨어는 infrastructure과 무관하게 항상 같은 환경에서 실행될 수 있다. Container는 소프트웨어를 그것의 환경과 분리시키기 때문에, 소프트웨어가 다양한 컴퓨터 위에서도 uniformly하게 실행될 수 있도록 한다. 이는 개발자와 시스템 운영자의 요구에 응한 것이라고 볼 수 있다.
  • Conparing Containers and Virtual Machine Container과 Virtual Machine은 자원을 격리시키고 할당하는 장점을 동일하게 가지고 있다. 하지만 hardware을 가상화하는 virtual machine과 다르게 container는 oprating system을 가상화한다. 이 방법이 더 효율적이고 휴대 간편하다.
  • Containers Container 여려 개는 각각의 container에서 os kernal을 나눠 가지며 한 컴퓨터 안에서 동시에 실행될 수 있다. 각각의 container는 user space에서 격리된 프로세스로 실행된다. container는 VMs 보다 가볍기 때문에 더 많은 앱을 다룰 수 있는 것이다.
  • virtual machine VMs는 하나의 서버에서 여러 서버로 전환하는 물리적인 하드웨어의 추상화이다. 여러 VMs가 하나의 machine 위에서 실행된다. 각각의 VM은 모든 구성 요소를 갖춘 operating system, 앱, 그리고 꼭 필요한 라이브러리들을 복사해 두기 때문에 부팅이 느리다.

Thinking

  • container 여러 개가 한 os 안에서 kernal을 나눠서 동시에 실행되는 것이면, 일반적으로 알려진 프로세스의 context switching과 다르게 정말 말 그대로 병렬적으로 실행되는 것인가?

0개의 댓글