스닥
Playground
스닥
전체 방문자
오늘
어제
  • 분류 전체보기 (125)
    • 개발자 기본기 (1)
    • Swift 아키텍처 (6)
    • iOS 개발 (55)
      • Swift (12)
      • UIKit (17)
      • SwiftUI (9)
      • CoreData (9)
      • MusicKit (4)
      • WebKit (2)
      • 개발 환경 (0)
      • WatchOS (2)
    • 애플 개발자 아카데미 (4)
    • 막 쓰는 개발일지 (0)
    • 운영체제 (4)
    • 네트워크, 서버 (16)
      • Network (9)
      • Server (7)
    • 알고리즘 (8)
    • C언어 (7)
      • 함수 (7)
    • 하루 이야기 (23)

블로그 메뉴

  • GitHub계정
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 깊이 우선
  • 자료구조
  • docker
  • swift performance
  • SWIFT
  • core data
  • BFS
  • 문자열 복사
  • Core Animation
  • Server
  • dfs
  • 너비 우선
  • 도커
  • 서버
  • C 언어
  • 알고리즘
  • ios rendering
  • ip주소
  • 트리
  • struct class 성능

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
스닥

Playground

참고1. 도커(Docker) 기본 개념
네트워크, 서버/Server

참고1. 도커(Docker) 기본 개념

2020. 8. 12. 21:20

1. 도커란?

 

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 개발자와 시스템 관리자가 app을 develop, deploy, and run을 컨테이너를 통해 할 수 있게 해준다.

 

도커가 등장하기 이전 기존의 서버 관리 방식은 매우 복잡했다. 시간이 흐르면서 서버관리를 위한 환경이 계속 바뀌고, 마이크로서비스 아키텍처가 유행하며 관리는 더욱 복잡해졌다.

하지만 도커가 등장하며 서버 관리의 흐름을 완전히 바꾸어버린다.

 

도커가 사용하는 컨테이너 기반의 가상화 플랫폼이 어떤 특징을 가지고 어떻게 기존의 서버 환경을 바꾸어버린걸까?

먼저 컨테이너에 대해 알아보자.

 


2. 컨테이너란?

 

컨테이너는 프로세스가 격리된 공간에서 동작할 수 있는 기술을 의미한다. 하지만 virtual Box나 VMware과 같은 OS를 가상화하는 것과는 차이가 있다.

 

컨테이너의 가상화 작업을 알아보기 위해서는 먼저 커널(Kernel)에 대해서 살펴보아야 한다.

커널과 하드웨어의 상관관계

커널은 운영체제의 핵심 부분이며 운영체제의 핵심역할 (보안, 자원관리, 추상화 등) 을 수행한다.

기존의 VM이나 VB같은 가상화머신들은 guest OS 위에 커널을 새로 만들어 사용했지만, 컨테이너는 기존의 Host 커널을 공유하는 방식으로 사양을 많이 필요로 하지 않게 되어 매우 가볍게 동작한다.

 

 

컨테이너는 다음과 같은 장점을 가진다.

 

1. 유연성 : 매우 복잡한 앱들도 컨테이너에 들어갈 수 있다.

2. 가벼움 : 앞서 설명했던 기존의 Host 커널을 공유함으로서 얻어지는 장점이다.

3. 상호교환성 : 즉석에서 deploy를 업데이트하고 업그레이드 할 수 있다.

4. 휴대성 : local에서 빌드하고, cloud에서 deploy하고, 어디에서나 실행할 수 있다.

5. 확장 가능 : 컨테이너 복제본을 늘리고 자동으로 배포할 수 있다.

6. 스택 가능 : 서비스 레이어를 즉석에서 쌓을 수 있다.

 

꽤 복잡하게 느껴질 수 있지만,

기존의 가상화에 비해 매우 빠르고 가벼우며, 레이어 방식 덕분에 수정이 간편하고, 어디에서든지 어떤 기기에서든지 '이미지'를 다운받고 컨테이너를 추가하기만 하면 모든 설정 그대로 실행할 수 있다고 이해하면 될 것 같다.

 

여기서 이미지는 우리가 지금까지 보았던 jpeg나 png 파일과는 다른 개념인데, 컨테이너와 함께 도커의 핵심 기술이라고 할 수 있다.

이미지에 대해서 알아보자.

 


3. 도커에서 이미지란?

 

도커에서 이미지는 컨테이너 살행에 필요한 파일들과 설정값들을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다.

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

컴퓨터가 바뀌거나 새로운 서버를 증설할 때에도 이 이미지를 다운받고 컨테이너 생성만 하면 모든 작업이 한번에 완료되기 때문에 엄청난 편리함을 가진다.

 

 

'네트워크, 서버 > Server' 카테고리의 다른 글

프로젝트4. Php 설치 후 실행해보기  (0) 2020.08.29
프로젝트3. SSL 인증서를 생성하고 Nginx 환경 설정하기  (0) 2020.08.28
프로젝트2. Nginx 설치 후, local host에 접속하기  (0) 2020.08.25
프로젝트1. Docker로 debian 이미지 만들고 컨테이너 접속하기  (0) 2020.08.25
참고2. Docker(도커) 설치하기  (0) 2020.08.25
시작하며. [필독]웹 서버 구축을 해보자  (0) 2020.08.12
    스닥
    스닥
    https://github.com/feldblume5263

    티스토리툴바