Jin's Dev Story

[Docker] Docker란? 본문

기타

[Docker] Docker란?

woojin._. 2024. 6. 13. 09:04

[Docker] Docker 기본 사용법 정리 - nicewoong

 

[Docker] Docker 기본 사용법 정리 - nicewoong

Docker 사용법 (Linux에서) Reference 를 보고 직접 따라해본 것을 정리한 내용입니다. Docker 다운받기 curl -s https://get.docker.com/ | sudo sh Docker 사용 권한 주기 docker 는 기본적으로 root 권한이 필요로 되어

nicewoong.github.io

컨테이너 기반의 오픈소스 가상화 플랫폼
  • 컨테이너 ? 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술
  • 컨테이너 런타임 ? 컨테이너를 다루는 도구 → 가장 유명한 것 → 도커

Docker

  • 다양한 프로그램들과 실행 환경을 컨테이너로 규격화시켜 프로그램의 배포 및 관리를 단순화할 수 있음(개발 후 사용자가 실행할 때 필요한 환경들은 한 번에 패키징하여 별 다른 설치 없이 한 번에 실행시켜주도록 하는 것)
  • 프로그램의 코드 뿐만 아니라 실행에 필요한 모든 dependency들도 컨테이너에 담기 때문에 다른 환경에서도 빠르게 애플리케이션을 실행할 수 있음

⇒ 개발/실행 환경이 달라도 컨테이너로 규격화한 프로그램들이 정상적으로 작동할 수 있는 이유가 무엇일까?

: 도커 컨테이너들(도커 이미지들)이 도커 엔진 위에서 실행되기 때문

Virtual Machine VS Container

  • Virtual Machine
    • 하드웨어를 에뮬레이트하여, 여러 운영체제를 동시에 실행할 수 있게 해줌
    • 각 VM은 전체 OS를 포함하므로 무겁고 느릴 수 있음
  • Container
    • OS 수준에서의 가상화로, 필요한 라이브러리와 바이너리만 포함하므로 가벼움
    • VM보다 더 빠르게 실행되지만, 보안과 격리가 약함

Docker Image(도커 이미지)

  • 도커에서 서비스 운영에 필요한 서버 프로그램, 코드 및 라이브러리, 컴파일된 실행 파일 등을 묶는 형태
  • 즉, 컨테이너 생성(실행)에 필요한 모든 파일과 환경을 가진 것으로, 더 이상 Dependency 파일을 컴파일하거나 이것저것 설치할 필요가 없는 상태의 파일을 뜻함
  • 컨테이너의 상태가 바뀌거나 삭제되더라도 도커 이미지는 변하지 않음
  • 도커 이미지를 실행(run)하면 ⇒ 도커 컨테이너
  • 도커 이미지는 도커 파일이라는 파일로 만들어지는데, 이러한 도커 파일에는 소스코드와 함께 의존성 패키지 등 사용한 설정 파일을 관리하기 쉽도록 명시됨

Docker Layer(도커 레이어)

  • 여러 개의 레이어를 나누어 이미지를 구성
  • ex) apache 이미지를 만든다고 하면, 기존의 Ubuntu 이미지를 base Image로 이용하고, 그 위에 필요한 다른 레이어들을 얹어서 만들 수 있음
  • 레이어 방식을 사용하면 기존의 이미지 레이어를 이용해 다양한 이미지를 새로 만들 수 있음
  • 기존 이미지를 이용하기 때문에 용량을 절약할 수 있음
  • 컨테이너를 생성할 때도 레이어 방식을 이용해 기존의 이미지 레이어 위에 읽기/쓰기 레이어를 추가함
  • 이미지 레이어를 그대로 사용하면서 컨테이너가 실행 중에 생성하는 파일이나 변경된 내용은 읽기/쓰기 레이어에 저장되므로 여러 개의 컨테이너를 생성하더라도 최소한의 용량만 사용하게 됨

Docker Hub(도커 허브)

  • 도커는 도커 허브를 통해 수많은 공개 이미지를 무료로 관리해줌
  • 누구나 쉽게 도커 이미지를 만들고 배포 가능
  • 호스트들은 도커 허브에서 도커 이미지를 pull 해와서 실행시킬 수 있음
  • 용량이 매우 큰 이미지들도 도커 허브에서 관리해주기 때문에 사용자는 부담 없이 도커 이미지를 사용할 수 있음

'기타' 카테고리의 다른 글

[쿠버네티스] 쿠버네티스란?  (0) 2024.06.13
[Jenkins] 젠킨스란?  (0) 2023.08.16
[CI/CD] CI/CD란?  (0) 2023.08.16
[MSA] MSA란?  (0) 2023.08.16