[Docker] 도커란

Shaun·2021년 11월 9일
2

Docker

목록 보기
1/7
post-thumbnail

도커란 무엇인가를 설명하기전 도커가 나온 배경을 이해하고 들어가야 도커가 왜필요한지 알게되는것 같아 이순서가 맞는것 같다. 일단 서버에 대해 알아보자

서버

  • 서버상태는 겉으로 보기에 견고해보이지만 실은 하나하나가 다 각각 제대로 동작해야만 서버 라는 완성체가 동작하는 약간은 부실?한 것

  • 수많은 기능들이 한치의 오차도 없이 각각의 기능들을 수행해야 서버가 동작한다.

  • 서버를 처음 봤을때 예전 학창 시절에 배우던 사회 문화의 기능론이 생각났다.

    ->기능론은 사회 구성 요소들이 상호 의존적 관계에서 사회 전체의 유지와 통합에 기여한다고 본다

즉 서버는 그 구성요소들이 상호 의존적 관계에서 서버 전체와 유지 통합에 기여 함으로써 존재한다라고 본다.

하지만!!!

  1. 저 수 많은 기능들중에 하나라도 고장나면 오류가 난다 => 관리가 어렵고 복잡하다.

  2. 계속해서 바뀌는 서버환경, 개발환경

그럼 저 수많은 기능들로 이루어진 서버를 좀더 쉽고 명확하게 관리 할수는 없을까??

Docker

  • 예전 서버 관리 방식이다. 저렇게 한단계 한단계 관리하므로 저 수많은 기능 둘중에 하나만 이상이 생겨도 전체 동작에 오류가 난다. 관리가 무척이나 어렵다.

  • Docker 은 프로그램들을 컨테이너라는 독립적 공간으로 나누어 관리한다.

Docker 특징

  • 어떠한 프로그램도 컨테이너라는 독립적 공간으로 만들수 있고

  • 어디서든지 동작이 가능하다!

  • overhead = 윈도우에 리눅스를깔면 리눅스라는게 한곂더 들어가는 부분, 이 부분이 속도 느리게하는 부분이다.

  • 도커는 그런거없다 , 격리만 해줌 -> 그래서 빠르다는 장점!

도커 특징 정리

1.확장성

  • 도커가 설치되어 있다면 어디서든 컨테이너 실행가능
  • 오픈소스라 종속적이지 않다.

2.표준성

  • 컨테이너라는 표준으로 서버를 배포하므로 모든 서비스들의 배포과정이 동일해짐

3.설정관리

  • 설정은 보통 환경변수로 제어한다.
  • MYSQL_PASS=password와 같이 컨테이너를 띄울때 환경변수를 같이 지정

4.자원관리

  • 컨테이너는 삭제후 새로 만들면 모든 데이터 초기화
  • 업로드 파일을 외부 스토리지와 링크하여 사용하거나 S3같은 별도의 저장소가 필요
  • 세션이나 캐시를 memcached나 redis와 같은 외부로 분리

가상머신 vs Docker

  • 가상머신은 기본적으로 cpu 나 메모리가 느리다 pc에서하는것보다 느려진
    다.

  • 하지만 도커는 가상머신과 매우 흡사 하지만 독립적이며 빠르고 효율적 이다.

서버 상태의 관리 순서

  • 요약하자면 도커는 서버관리를 하기위해 나온 오픈소스이다. 하지만 도커란것이 처음부터 있었던것은 아니다.

1. 문서

  • 초반에는 문서로 서버관리를 하였다.
  • 하지만 문서의 정확성, 버전관리 , 등등 많은 문제가 있었다. 그 다음으로 나온게 상태관리 도구이다.

2. 상태관리 도구 (Chef, puppet , ansible)

  • 코드로 관리하면 협업도 하고 버전관리도 된다.
  • 하지만 난이도가 너무 높았다. 그리고 서버를 대상으로 돌려봐야하는데 태스트서버가 잇으면 다행인데 ,, 그렇지 않으면 기존설정 날라갈수도있다 .. 그래서 나온게 가상머신 으로 서버를 관리하는 방법이다.

3. 가상머신

  • 가상머신 관리하는 서버만들고 거기에 하나씩 띄운다. 알아서 돌고 서로서로 영향도 없다
  • but 누군가는 만들었을텐데 처음부터 세팅하려면 그 처음정보를 알아야한다. 결과는 보장되지만 어떤식으로는 만들어졌는지 알수없다
  • 공유도 어렵다. 용량도 크고 이메일전송도 안되고.... 가상머신이기때문에 느리다

4. 자원격리

  • 프로세스를 가상으로 분리! 안곂치게 가상머신 만드는게 아니라
  • 파일, 디렉토리도 가상으로 분리!
  • cpu, memeory i/o 그룹별로 제한!

->근데 사용이 어렵다.

-> 그래서 나온게... DOCKER

profile
호주쉐프에서 개발자까지..

0개의 댓글