본문 바로가기
기타 공부/Docker

Docker 이해하기

by gun_poo 2022. 2. 19.

Docker

  • 도커(Docker)는 리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 서비스. 도커를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있으며, OS를 격리화하여 관리한다. 

Linux Container 란?

  • Linux Container는 Linux 기반의 기술 중 하나로, 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것을 말한다. 컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유

 

컨테이너 방식의 장점

  1. 의존성 충돌 문제를 해결해 준다
  2. 개발과 배포 환경을 일치시킨다
  3. 수평 확장을 쉽게 해준다
  4. 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다

컨테이너는 무엇을 격리하나?

  1. 프로세스
  • 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스할 수 있다.
  • 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.

2. 네트워크

  • 기본으로 컨테이너 하나에 하나의 IP 주소가 할당되어 있다

3. 파일 시스템

  • 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있습니다. 그래서 해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한할 수 있다

컨테이너

  • 컨테이너는 앞서 설명한 대로, 애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자

이미지

실행되는 모든 컨테이너는 이미지로부터 생성

이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아놓은 템플릿으로, 이를 이용해 즉시 컨테이너를 만들 수 있다

이미지를 이용해 여러 개의 컨테이너를 생성할 수 있다. 이를 이용해 앞서 설명한 애플리케이션의 수평 확장이 가능한다.

이미지는 기본 이미지(base image)로부터 (마치 git을 사용하는 것처럼) 변경 사항을 추가/커밋해서 또 다른 이미지를 만들 수도 있다. 예를 들어 node.js로 작성된 애플리케이션을 이미지로 만들고 싶은 경우, nodejs 이미지를 기본 이미지로 삼고 내가 만든 애플리케이션을 추가해 넣고, 이미지화할 수 있다.

 

레지스트리

  • 이미지는 레지스트리에 저장된다. 대표적인 이미지 레지스트리로는 Docker Hub, Amazon ECR이 있다. 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리로부터 다운로드 받게 된다
  • 특별히 다른 것을 지정하지 않는다면, 도커 허브(Docker Hub)를 기본 레지스트리로 설정한다.
  • 레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉜다.

 

'기타 공부 > Docker' 카테고리의 다른 글

Docker 간단한 명령어 정리  (0) 2022.02.19

댓글