본문으로 바로가기

Docker #1

category docker 2022. 6. 19. 20:43
반응형


Docker 란?

컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈소스 가상화 플랫폼.

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있음

 

컨테이너 란?

개별 소프트웨어의 실행에 필요한 실행환경을 독립적으로 운용할 수 있도록 기반환경 또는 다른 실행환경과의 간섭을 막고 실행의 독립성을 확보해주는 운영체계 수준의 격리 기술.

코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어 표준 단위.

 

컨테이너 이미지 란?

코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지.

 

* 도커 이미지를 이용해 컨테이너를 생성하며 도커 컨테이너를 이용하여 프로그램을 실행함.

 

기존 가상화 기술과 도커의 차이점

가상 머신

- 가상머신은 편하지만 성능이 좋지 못하다는 단점이 있다.

- 가상머신 자체는 완전한 컴퓨터이기 떄문에 항상 게스트 OS 를 설치해야한다.

- 이미지 안에 OS가 포함되기 떄문에 이미지 용량이 커진다.

Docker

- Docker는 반가상화보다 경량화된 방식

- 게스트 OS를 설치하지 않음

- Docker 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치 가능하고, OS는 호스트와 공유

- 이미지 용량이 크게 줄어듬.

 

공통점

- Docker 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에 어플리케이션을 배치하는 방법.

 

차이점

- 가상 머신과 비교했을 때, 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가벼움.

- 가장 큰 차이점은 격리된 환경을 얼마나 격리를 시키는지의 차이.

 

이미지로 컨테이너 만드는 순서

1. Docker 클라이언트에 docker run <이미지> 입력해줍니다.

2. 도커 이미지에 있는 스냅샷을 컨테이너 하드 디스크에 옮겨 줍니다.

3. 이미지에서 가지고 있는 명령어를 이용해서 이미지를 실행시켜줍니다.

 

 

Cgroup, namespace 를 쓸 수 있는 이유

컨테이너를 격리 시킬 수 있는 이유는 Linux 기능 중 Cgroup과 namespace 를 이용해서인데 Window에서 사용 할 수 있는 이유는 docker version을 입력하면 OS가 linux로 되어있다.

- Cgroup은 단일 또는 태스크 단위의 프로세스 그룹에 대한 자원 할당을 제어하는 커널 모듈

- namespace는 전역 리소스의 자체 격리 된 인스턴스가 있는 네임 스페이스 내의 프로세스에 표시 되도록하는 추상화에서 전역 시스템 리소스를 래핑합니다.

반응형