[Docker]1-1 도커란 무엇인가?

Gaeng·2024년 11월 22일
post-thumbnail

그림과 실습으로 배우는 도커 & 쿠버네티스

다음 주부터 이 책으로 스터디를 하게 되어, 스터디 전에 공부를 하기 위해 벨로그에 학습정리를 위한 글을 만들기.

도커는 MAC에서 오라클 돌릴 때 사용했었지.. 그랬었지.......

도커란 무엇인가?

Docker란?

데이터나 프로그램을 독립된 환경에서 격리시키는 기능을 제공하는 소프트웨어

  • 주로 서버 환경에서 사용됩니다.
  • 도커는 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하여 실행할 수 있도록 지원합니다.
  • 기존에는 하나의 컴퓨터(또는 서버)에서 여러 프로그램이 충돌할 위험이 있었지만, 도커는 컨테이너라는 독립된 환경을 통해 이러한 문제를 해결합니다.

컨테이너와 도커 엔진

  • 컨테이너: 독립된 환경을 제공하여 프로그램을 실행하는 단위.
  • 도커 엔진: 컨테이너를 생성, 관리, 실행하는 기능을 제공하는 소프트웨어.
    • 도커를 사용하려면 Docker Engine을 설치해야 합니다.
    • 도커 엔진을 통해 컨테이너를 생성하고 구동할 수 있습니다.

컨테이너를 만들기 위해 필요한 이미지

  • 컨테이너는 이미지를 기반으로 생성됩니다.
    • 이미지는 컨테이너를 만들기 위한 템플릿이나 "빵틀"로 비유할 수 있습니다.
    • 이미지 파일은 ISO 파일처럼 컨테이너의 환경을 정의합니다.
  • 하나의 이미지로 여러 개의 컨테이너를 생성할 수 있습니다.
    • 단, 생성 가능한 컨테이너의 개수는 서버의 용량에 따라 제한됩니다.

도커는 리눅스에서 동작

  • 도커는 내부적으로 Linux 커널을 기반으로 작동합니다.
  • 따라서 도커에서 동작하는 프로그램도 리눅스 환경에서 실행될 수 있는 프로그램이어야 합니다.
  • 도커는 리눅스 컴퓨터에서의 사용을 염두에 두고 설계되었으며, Windows나 macOS에서도 사용 가능하지만 내부적으로 리눅스 환경을 에뮬레이션합니다.

한 줄 요약: 도커는 데이터를 격리된 컨테이너에서 실행할 수 있도록 지원하며, 컨테이너는 도커 엔진을 통해 생성, 실행되며 리눅스 기반으로 동작합니다.


데이터나 프로그램을 독립된 환경에서 격리해야 하는 이유

설계 단계에서는 문제없던 프로그램끼리도 실제로 설치 후 실행하면 오류가 발생할 때가 많습니다. 그 주요 원인은 바로 프로그램 간 공유 자원 충돌에 있습니다.

  • 예를 들어, 동일한 서버에서 실행되는 프로그램이 동일한 포트, 라이브러리 버전, 또는 환경 변수를 공유할 경우 충돌이 발생할 수 있습니다.
  • 이를 해결하기 위해 각 프로그램을 독립적으로 실행할 수 있는 격리된 환경이 필요합니다.

프로그램의 격리란?

도커 컨테이너는 다른 컨테이너와 완전히 분리된 독립된 환경을 제공합니다.

  • 즉, 컨테이너 내부의 프로그램은 외부의 다른 프로그램과 완전히 격리된 상태에서 실행됩니다.
  • 이를 통해 다음과 같은 이점이 있습니다:
    • 안정성: 하나의 프로그램에서 발생한 문제가 다른 프로그램에 영향을 미치지 않습니다.
    • 유연성: 한 서버에서 여러 프로그램을 동시에 실행하더라도 충돌 없이 작동합니다.
    • 효율성: 독립된 환경에서 테스트 및 배포를 수행할 수 있어 개발과 운영 간의 일관성이 보장됩니다.

특징

  1. 완전한 독립성: 도커 컨테이너는 운영체제와 독립적인 환경을 제공하기 때문에, 동일한 서버에서 동일한 프로그램을 여러 컨테이너에서 동시에 실행할 수 있습니다.
  2. 문제 해결: 컨테이너는 공유 리소스에 의한 충돌을 방지하며, 한 서버에서 여러 애플리케이션을 안전하게 실행할 수 있습니다.
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글