Docker Container
도커는 가상머신이 아니다. 가상머신은 하드웨어를 소프트웨어로 구현하지만, 도커는 가상머신을 만들지 않는다. 단지, 프로세스를 격리된 환경에 실행하는 걸 도와주고, 이렇게 만들어진 프로세스를 컨테이너라고 한다. 따라서 컨테이너는 단지 프로세스일 뿐이다.
가상머신은 OS나 하이퍼바이저 위에서 하드웨어를 소프트웨어로 에뮬레이션하고 그 위에 OS를 실행하고, 또 다시 그 위에 프로세스를 실행한다. 반변 컨테이너 가상화는 하드웨어를 에뮬레이션하지 않고, 독립된 환경에서 실행되는것 처럼 보이는 특별한 제약이 가해진 프로세스를 실행한다.
도커 위에서 실행되는 것이 아니라, OS 위에서 실행되는 다른 프로세스들과 정확히 같은 계층에서 실행된다.
컨테이너에 필요한 커널은 호스트의 커널을 공유해 사용하고, 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행 파일만 존재한다. 따라서 가성머신에 비해 용량이 대폭 줄어들며, 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, namespace, cgroup 을 사용함으로써, 프로세스 단위의 격리 환경을 만들기 때문에 성능손실이 거의 없다.
References
1. 44BITs - "컨테이너 기초 - chroot를 사용한 프로세스의 루트 디렉터리 격리"
www.44bits.io/ko/post/change-root-directory-by-using-chroot
컨테이너 기초 - chroot를 사용한 프로세스의 루트 디렉터리 격리
chroot는 프로세스의 루트 디렉터리를 변경하는 리눅스 시스템콜/명령어입니다. 루트를 변경함으로써 아주 기초적인 단계의 컨테이너를 구현해볼 수 있습니다. chroot는 아주 단순한 프로그램입니
www.44bits.io
2. steemit - "<컨테이너 가상화의 이해> chroot를 사용해 프로세스의 루트 바꾸기>"
steemit.com/kr/@mishana/1-chroot
<컨테이너 가상화의 이해> chroot를 사용해 프로세스의 루트 바꾸기 — Steemit
안녕하세요. 프로그래머 @mishana입니다. 오늘 소개할 리눅스 명령어는 프로세스가 인식하는 루트 디렉터리를 바꿔주는 chroot입니다. chroot를 직접 사용할 일은 별로 없습니다. 하지만… by mishana
steemit.com
3. wickedmiso - "[Docker] 도커(Docker)란?"
[Docker] 도커(Docker)란?
발췌 : 시작하세요! 도커 ■ 도커( Docker ) 란? · 도커( Docker )는 리눅스 컨테이너에 여러 기능을 추가함으로써 플리케이션을 컨테이너로서 좀더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝이�
magic.wickedmiso.com