[도커] 이미지와 컨테이너

김성환·2022년 6월 5일
0

도커

목록 보기
3/10

이미지란?

도커에서의 이미지란 템플릿 혹은 컨테이너의 블루프린드를 의미한다.
즉, 이미지는 실제코드와 그 코드를 실행하는데 필요한 도구를 포함한다.

  • 블루프린트란 청사진으로 아키텍처를 문서화한 기술도면의 복사본을 의미한다.

이미지 생성방법

이미지를 생성하고 가져오는 방법은 2가지가 있다.
1. 이미 존재하는 이미지를 사용(도커허브에서 가져옴)
2. 자신만의 이미지를 구축해 사용(Dockerfile사용)

컨테이너 격리

vm의 경우 독립적인 컴퓨팅 공간을 만들기 위해서 운영체제 자체를 가상화한다.(비용이 크다)
하지만 도커의 경우 호스트 OS를 공유해 컨테이너를 하나의 격리되어 있는 프로세스로 동작시킨다.

격리를 위해 사용하는 것

도커는 컨테이너라는 가상의 '격리 환경'을 만들기 위해 리눅스의 namespace과 cgroup이라는 기능을 사용한다. (namespace와 cgroup으로 만들어진 컨테이너를 LXC라고 부른다)

도커컨테이너와 LXC 차이

LXC는 OS를 컨테이너화 하는데 집중하고,
도커컨테이너는 애플리케이션을 컨테이너화 하는데 집중한다.

호스트 OS란?

기존의 컴퓨터가 가진 OS를 의미한다.
반대로 게스트 OS란 기존 컴퓨터에 추가적으로 설치되는 OS를 의미한다.

결론

만들어진 이미지를 기반으로 여러 컨테이너를 만들 수 있다.
즉, 컨테이너는 이미지의 구체적인 실행 인스턴스라고 볼 수 있다.
결론적으로 자바로 따지면 이미지는 클래스와 비슷하고 컨테이너는 인스턴스라고 볼 수 있다.

profile
개발자가 되고 싶다

0개의 댓글