Declan Andrew
Kaminion
Declan Andrew
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 잡담 (1)
    • AI (0)
      • 논문 리뷰 (0)
    • 유니티 (1)
    • C (2)
    • Java (11)
    • 서버(Server) (10)
      • PHP (1)
      • DevOps (4)
    • JavaScript (12)
      • Node.js (1)
      • React.js (6)
    • 프론트엔드 (1)
    • 안드로이드 (2)
    • 알고리즘과 자료구조 (2)
    • 통계 (0)
      • 중학 통계 (0)
      • 고등 통계 (0)
      • 대학 통계 (0)
    • 컴퓨터과학 (19)
      • 디지털 논리회로 (6)
      • 인공지능 (3)
      • 데이터베이스 (3)
      • 정보통신망(네트워크) (4)
      • 프로그래밍 언어론 (0)
      • 운영체제 (3)
    • 수학 (8)
      • 기초 수학 (5)
      • 공학 수학 (3)
      • 게임 수학 (0)
    • 자격증 (12)
      • AWS (3)
      • 정보처리기사 (9)
    • 빅데이터 (1)
      • 이론 (0)
      • 실습 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 티스토리로이동

공지사항

인기 글

태그

  • react-native
  • 정처기
  • 자바
  • qnet
  • OS
  • 큐넷
  • 프로그래밍
  • js
  • JavaScript
  • DB
  • Database
  • React
  • Q-net
  • 프로그래머
  • Ai
  • 개발
  • 수학
  • 자격증
  • java
  • 자바스크립트
  • array
  • 정보처리기사
  • 데이터베이스
  • 리눅스
  • 리액트
  • 기사
  • 파이썬
  • 인공지능
  • Programming
  • 논리회로

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Declan Andrew

Kaminion

서버(Server)/DevOps

도커(Docker) 개론

2020. 2. 14. 00:02
반응형

컨테이너 기술중 하나,

클라우드 서비스에서 공식적으로 지원.

 

복잡한 리눅스 application을 container로 묶어서 실행 가능하다

즉 환경, 개발, 테스트를 하나로 묶어 관리가 가능하다는 것이다.

 

리눅스 커널에서 제공하는 컨테이너 기술을 이용한 것이다.

소셜 코딩과 같은 개념이다.

다른 개발자들과 공유 할 수 있다는 점이 매력적이다.

 

컨테이너 기술 이해를 위해선 가상화 기술에 대한 이해가 필요하다. (Hypervisor)

컨테이너는 가상화보다 훨씬 경량화된 기술이다.

 

(본인은 과거 임베디드에서 배웠던 내용)

컴퓨터 안에서 컴퓨터를 생성하기 위한 방법이다.

 

여유있는 서버를 효율적으로 운영하기 위해서 나온 방법 중 하나로,

서버에 가상머신을 설치하여 유휴자원을 더욱 더 유용하게 사용하기로 한 것이

시초이다.

 

미리 구축한 가상 이미지를 여러 서버에 사용하는 것.

이것이 클라우드이다.

 

이걸 이용한 서비스가 클라우드 서비스이다.

 

웹 호스팅 = 실제 물리적인 서버를 공유

 

클라우드 = 각각의 독립적인 가상화 기술을 이용하여

가상 머신안에 독립적으로 컴퓨터가 운영되는 서버 환경을 이용할 수 있게 한것.

 

그런데 컴퓨터 안의 컴퓨터, 즉 가상머신을 설치하게 되면 성능 저하 이슈를 피할 수가 없었다.

 

그 후 인텔과 같은 CPU회사들은 가상화 기술을 CPU에 내장하였지만 아직 퍼포먼스 문제가 존재하였고,

 

host와 커널을 공유하는 반 가상화 기술이 등장하였지만 가상머신은 완전한 컴퓨터여서 이 퍼포먼스 문제에서 자유롭지 못하였다.

 

네트워크 가상화 다운로드 OS설치 등 부담되는 자원 소모가 많았고 OS 가상화 기술에 대한 집중만 하다보니

서버 배포에 대한 기술의 부족이 계속 드러나고 있었다.

 

이에 발맞춰 등장한 도커는 가상화보다 격리에 가까운 개념이다.

 

가상머신 -> 여러대의 가상 OS 등이 올라갔다면,

도커는 host 위에 올라가는 docker에 올라가는 것들이 어플리케이션(이미지)들 뿐이다. 즉 모든 작업을 일반 호스트에서 처리한다!

 

 

Docker의 특징

1. Guest OS를 따로 설치하지않는다. 도커이미지 서버운영에 필요한 프로그램과 라이브러리만 설치한다.

2. 이러한 걸 바탕으로 host의 system call을 공유한다

3. 하드웨어 가상화 X

4. 메모리 접근, 네트워크 접근등이 가상머신에 비해 엄청 빠르다.

5. 이미지 생성과 배포에 특화되었다.

6. 운영과 서버관리적인 것에 크게 편리하다.

 

이미지 : 서버 운영에 필요한 소스코드, 컴파일된 실행파일을 묶은 형태

 

저장소에 올리고(push) 받는 과정(pull)은 모두 이미지다. (Program)

컨테이너는 이미지를 실행한 상태이다(run-time)  (Process)

 

이런 이미지들을 모두 컨테이너로 만들수있다.

 

Union File System 형식 -> 도커는 베이스 이미지에서 바뀐 부분만 이미지로 컨테이너로 실행할 때는 베이스이미지와 바뀐부분을 합쳐서 실행한다.

 

hosting 은 IDC를 많이 사용해왔지만, 서버 구입 및 운영에 막대한 비용, 시간과 인력이 많이 소모되었고

가상화 이후 클라우드 서버, 가상서버 임대하여 사용한 만큼만 지불하는 방식으로 바뀌면서 패러다임이 바뀌었다.

모든것이 시간단위, 자동화이기 떄문에 편하게 가상 서버를 생성 할 수 있다.

 

코드로써 모든것을 일관성과 자동화를 보장 받을 수 있게되었다.

 

반응형

'서버(Server) > DevOps' 카테고리의 다른 글

AWS 개론  (0) 2020.02.17
Docker 설치법  (0) 2020.02.14
데브옵스 개론  (0) 2020.02.13
    '서버(Server)/DevOps' 카테고리의 다른 글
    • AWS 개론
    • Docker 설치법
    • 데브옵스 개론
    Declan Andrew
    Declan Andrew
    궁금한 점은 메일 주세요. jwsoft0529@gmail.com 블로그 확인 잘 안합니다.

    티스토리툴바