SERVER/Docker

도커란?

lovineff 2020. 6. 4. 18:06

도커란 무엇인가?

컨테이너 기반의 오픈소스 가상화 플랫폼

 

언어 정리

컨테이너(Container)

  - 격리된 공간에서 프로세스가 동작하는 기술

  - 가상머신과 도커 차이

    ㄴ 가상머신의 경우 OS를 가상화하여 무겁고 느렸다.

    ㄴ 이를 개선하기 위해 프로세스를 격리하는 방식이 등장했다.

        단순히 프로세스를 격리시키기 때문에 가볍고 빠르며, CPU나 메모리는 필요한만큼만 추가로 사용이 가능하다.

  - 컨테이너의 장점

    ㄴ 하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행되어 가벼운 VM을 사용하는 느낌을 준다.

    ㄴ 실행중인 컨테이너에 접속하여 명령어를 입력할 수 있고 apt-get, yum으로 패키지 설치가 가느하며, 여러 프로세스를 백그라운드도 실행이 가능하다.

    ㄴ CPU나 메모리 사용량을 제한할 수 있고 호스트의 특정 포트와 연결하거나 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용 가능하다.

 

이미지(Image)

- 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것

- 상태값을 가지지 않고 변하지 않는다(Immutable)

- 컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장된다.

- 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고, 컨테이너의 상태가 변경되거나, 삭제되어도 이미지는 변하지 않고 그대로이다.

- 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 의존성 파일을 컴파일하고 설치할 필요가 없다.

- 즉, 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성하면 된다.

- 이미지는 url 방식으로 관리하며 태그를 붙일 수 있다.

 

Dockerfile (대소문자 주의)

- 자체 DSL 언어를 이용하여 이미지 생성과정을 기술한 것.

- 서버에 프로그램을 설치하고 의존성 패키지를 설치하는 과정을 따로 적지 않고, Dockerfile 하나로 관리가 가능하다.

- 소스와 함게 버전 관리가 가능하다.

'SERVER > Docker' 카테고리의 다른 글

도커 파일 생성  (0) 2020.06.04
도커 명령어  (0) 2020.06.04