Spring - 도커(Docker)

김상엽·2024년 3월 26일
0

Spring

목록 보기
20/26
post-thumbnail

TIL

도커(Docker)란?

  • 도커(Docker) : 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다.
    도커 엔진(Docker Engine) : 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 도커의 프로젝트이다.

도커 컨테이너(Docker Container)

  • 컨테이너(Container)는 어플리케이션을 다른 환경에서 빠르고 안정적으로 실행 할 수 있도록 코드 + 모든 종속성을 패키징하는 표준 소프트웨어 단위이다.
  • 도커 컨테이너 이미지(Docker Container Image)코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정어플리케이션을 실행하는 데 필요한 모든 것을 포함하는
    경량의 독립 실행형 소프트웨어 패키지이다.
    [Docker 래퍼런스]

가상머신(Virtual Machine) VS 도커 컨테이너(Docker Container)

도커 컨테이너는 어플리케이션을 다른 환경에서 실행할 수 있도록 해주는것이라고 생각한다.
그런데, 우리가 평소에 다른 환경을 구동하기위해 가상머신을 이용할때가 있는데,

왜 도커를 사용할까?

도커 컨테이너를 사용하는 이유

  • 컨테이너는 기본 운영체제 커널을 동일한 시스템의 다른 컨테이너와 공유하는 격리된 환경에서 어플리케이션을 실행하는 방법이다. (위에서 설명한 프로세스 격리기술)
  • 종속성, 필요한 라이브러리 및 바이너리와 함께 어플리케이션컨테이너 이미지라고 하는 독립된 패키지로 패키지화하여 여러 컴퓨팅 환경에 쉽게 배포할 수 있다.
  • 가상머신과는 다르게, 하이퍼바이저 위에서 여러 개의 게스트 OS를 싱행하는 대신,
    호스트 OS 커널을 사용하여 격리된 여러 개의 컨테이너를 실행한다.
  • 게스트 OS가 아닌 호스트 OS에 컨테이너형 가상화 소프트웨어를 설치하기때문에,
    기존 가상화에 비해 더 가볍고 효율적이다. (컨테이너의 장점)

설치 같은 번거로움을 줄이고, 성능도 좋아진다!

도커 컨테이너 만드는법

    1. docker build 명령어를 통해서 Docker File을 Docker Image로 만든다.
    1. docker run 명령어를 통해서 Docker Image를 Docker Container로 만든다.

오늘의 회고

로컬에서만 개발하다가 최종 프로젝트에 오면서 배포에 대한 기술이 필요해짐에 따라
배포에 관련된 기술들을 익힐 필요가 생겼다.. (S3, ELB, Docker, 메세지큐 등등..)
처음 접해보는 기술이라 프로젝트를 진행하는데에 차질이 없도록
하루에 1개씩이라도 기술을 찾아보며 익혀야겠다

profile
개발하는 기록자

0개의 댓글