Docker Orientation #1.

toto9602·2022년 7월 22일
0

Docker 공부하기

목록 보기
1/10

Docker 공식문서 중 Get Started Part 1: Getting Started의 영상을 보고 정리한 글입니다.


Why Docker?

  • 개별 machine 및 VM(virtual machine)들과 함께,
    베어메탈 또는 VM 내부에서 실행되는 OS들이 있습니다.
  • OS들을 유지하고, 항상 최신화 상태로 관리하는 것은 어려운 일입니다.
    (보안 관련 패치, dependency 설치, OS 업그레이드 등...)
  • 여러 서버를 운영할 때, 이를 모두 업데이트하는 것 역시 어려운 일입니다.
    • 가령, 데이터 센터가 50개의 서버를 갖고 있고, 그 중 하나의 서버가 제대로 설정되지 않았다면, 해당 계층(layer)를 꺼내어 복구하고, 다시 집어넣는 과정을 거쳐야 합니다.

! Virtual Machine(가상 머신)이란?

  • 실재하는 컴퓨터 상에 소프트웨어로 논리적으로 만들어낸 컴퓨터
  • 하나의 물리 자원(컴퓨터) 위에 하나의 환경(OS)만 있는 것을 효율화하고자 가상화층을 만들고 그 위에 OS를 새로 설치하는 기법

! Bare Metal(베어 메탈)이란?

  • 원래는 하드웨어 상에 어떤 소프트웨어도 설치되지 않은 상태를 뜻함.
  • 베어메탈 서버는 가상화를 위한 하이퍼바이저 OS 없이 물리 서버를 그대로 제공하는 것.

참고자료 : Virtual Machine(가상 머신)이란?
참고자료 : 베어 메탈(Bare Metal)이란?

cf) 하이퍼바이저란?

  • 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼

만약, 애플리케이션, OS, dependency를 한 묶음으로 꾸릴 수 있다면?

= 그것이 이미지!(Image)

  • 한 개, 또는 여러 개의 이미지를 서버에 배포해 두고, 그 중 일부가 다운되면 새로운 이미지로 대체만 해 주면 됩니다.

  • 서버를 시스템에서 꺼내어 수정하는 작업을 거칠 필요가 없습니다!

  • 각각은 모두 복사본이므로, 서버에서 돌아가고 있는 모든 애플리케이션을 일일이 설정해 줘야 할 필요도 없습니다!

    *서버, 그리고 애플리케이션은 Ephemeral(Short-lived)
    -> 서버가 죽어도, 그냥 새로운 것으로 대체해 주면 그만이다!


Docker는 3가지 단계에 집중한다.


1. Build Image

  • 하나의 이미지에 필요한 것들을 다 꾸려 넣습니다.

2. Ship Image

  • 이미지를 클라우드, 혹은 다른 개발자에게 쉽게 보낼 수 있습니다.

3. Run Image

  • 쉽게, 그리고 consistent하게 이미지를 실행(run)할 수 있습니다.


가능해진 것들


1. CI/CD

  • 다양한 환경에서 지속적인 test, 배포가 가능합니다.
    - Stage, UAT, Production...

2. 서로 다른 버전들의 관리가 용이해집니다.
3. Roll Forward

  • 문제가 발견되었을 때, 문제를 수정해서 CI/CD pipeline으로 수정된 내용을 배포하기만 하면 됩니다.

! UAT(User Acceptance Testing)이란?

  • 시스템 통합 테스트(SIT)가 완료되면 수행되는 최종 테스트
  • 사용자 또는 클라이언트가 소프트웨어를 수락할 수 있는지 여부를 결정하기 위한 SW 테스트

참고자료 : UAT란?

profile
주니어 백엔드 개발자입니다! 조용한 시간에 읽고 쓰는 것을 좋아합니다 :)

0개의 댓글