호아's Diary

1. 컨테이너는 무엇인가?

  • 지금 시대에는 컨테이너를 요구한다.
  • 컴퓨터 시스템은 이렇게 소프트웨어 운영 플랫폼이 바뀌고 있다.

2. 왜 리눅스에서 돌려야하는걸까?

  • 리눅스 커널의 기능을 가지고 만들어졌다
  • Chroot 독립된 공간 형성
  • namespace isolate 기능 지원
  • cgroup 필요한 만큼 HW 지원

 

3. 가상머신과 Docker

- 가상머신

  • 가상머신은 편하지만 성능이 좋지 못하다. (속도가 느림)
  • 가상머신 자체는 완전한 컴퓨터이기 때문에 항상 게스트 OS를 설치해야한다.
  • 이미지 안에 OS가 포함되기 때문에 이미지 용량이 커진다.

- Docker

  • Docker는 반가상화보다 경량화된 방식
  • 게스트 OS를 설치하지 않음
  • Docker 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치 가능하고, OS는 호스트와 공유
  • 이미지 용량이 크게 줄어듬

기존의 가상화 방식: OS를 가상화

-> 성능에 문제가 있다

개선: 프로세스를 격리하는 방식 = 컨테이너

-> 프로세스를 격리시키기 때문에 가볍고 빠르게 동작함

 

도커는 기능별로 컨테이너를 만들어서 올린다.

보통 우리는 프로그램에서 에러가 났을때, 코드를 내리고 수정한 후 다시 올려야하는데,

도커는 컨테이너 별로 잘게 쪼개놔서 컨테이너 하나만 수정하고 다시 올리면 된다.

-> 유지보수가 좋다는 것이 큰 장점이다.

 

 

 

4. Docker란 무엇인가?

  • Linux 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술 
  • 오픈소스 가상화 플랫폼

5. Docker의 장점

  • 편리한 관리
  • 확장성
  • 가벼움
  • 테스트 쉬움 (개발자의 PC나 테스트 서버에서 이미지를 실행하기만 하면 서비스 운영 환경과 동일한 환경이 구성되기 때문에 테스트가 매우 쉽다)

6. Docker를 써야하는 이유

  • 원하는 개발 환경을 파일에 저장하면, docker는 이를 내가 원하는 어떤 머신에든 해당 환경을 시뮬레이션 가능
  • 이러한 환경들은 각기 독립적으로 존재하기 때문에, 원하는 무슨 환경이든 모듈식으로 관리 가능 (파이썬 서버, 자바 서버, db 서버 등 서버들을 추가해서 살 필요가 없이 docker 하나로 모든 독립적인 운용 가능)

7. Docker 이미지

  • 컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는것 (컨테이너 실행을 위한 모든 정보를 가지고 있음)
  • 쉽게 말해서, 어떤 프로그램들을 이미지화 해서 저장한다고 생각하면 편하다
  • 같은 이미지에서 여러개의 컨테이너를 생성할 수 있다
  • 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.
  • 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading