Docker 시리즈 (1)

1 분 소요

Docker란?

도커는 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트이다.

가상머신과 도커 컨테이너

기존 가상화 기술은 하이퍼바이저를 이용해서 여러 개의 운영체제를 하나의 호스트에서 생성해서 사용하는 방식이었다.
이렇게 생성되고 관리되는 운영체제는 게스트 운영체제라고 하며, 각 게스트 운영체제는 다른 게스트 운영체제와는 완전히 독립된 공간과 시스템 자원을 할당받아 사용한다.
이러한 방식의 가상화 기술을 사용하는 대표적인 툴이 바로 VirtualBox와 VMware이다.
하지만 이러한 방식은 일반 호스트에 비해 성능의 손실이 너무 크다. 또한 가상머신이 게스트 운영체제를 사용하기 위한 라이브러리, 커널 등을 전부 포함해서 용량도 너무 커진다.
이러한 문제를 해결할 수 있는게 바로 도커 컨테이너이다. 도커 컨테이너는 가상화 공간을 생성할 때 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없다. 또한 컨테이너 안에 애플리케이션을 구동하는 데 필요한 라이브러리 미치 실행 파일만 있어서 매우 가볍다.

  • 도커의 장점
    1. 서비스를 개발했을 때 사용했던 환경을 다른 서버에서도 컨테이너로서 똑같이 복제할 수 있기 때문에 개발/운영 환경의 통합이 용이하다.
    2. 도커 이미지엔 커널이 포함되어 있지 않아서 용량이 매우 작다. 이는 배포 속도가 매우 빨라짐을 의미한다.
    3. 마이크로서비스 구조에서 용이하다. (db컨테이너의 분리, 웹서버 컨테이너의 auto-scaling 등등)

Docker 설치

  1. 먼저 호스트 운영체제가 최소 3.10버전 이상이어야 한다. 이를 확인한다.
     # uname -r
    
  2. 우분투 계열
     # curl -fsFL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
     # add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
     # apt-get update
     # apt-get install docker-ce
    
  3. CentOS 계열
     # yum install -y yum-utils
     # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
     # yum install -y docker-ce
     # systemctl start docker
    
  4. 버전정보 확인
     # docker info
     # docker -v
    

도커 이미지와 컨테이너

  • 도커 이미지
    • 컨테이너를 생성할 때 필요한 거푸집이다.
    • 컨테이너를 생성하고 실행할 때 읽기전용으로 사용되며 수정 및 변경은 안된다.
    • 도커 명령어로 내려받을 수 있으므로 별도로 설치할 필요는 없다.
    • ex) 우분투, centos, apache2, nginx, mysql, hadoop, spark, storm 등등
  • 도커 컨테이너
    • 이미지로 컨테이너를 생성하면 해당 이미지의 목적에 맞는 파일이 들어있는 파일시스템과 격리된 시스템 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성된다.
    • 이미지를 읽기 전용으로 사용하고, 이미지에서 변경된 사항은 컨테이너 계층에만 저장되므로 이미지에 영향을 안미친다.
    • 컨테이너끼리 철저히 독립되어있다.

카테고리:

업데이트:

댓글남기기