Docker란[Docker]

SnowCat·2023년 9월 27일
0
post-thumbnail

Docker란 무엇인가?

  • Docker란 애플리케이션을 개발, 제공, 실행하기 위한 개방형 플랫폼이다.
  • 소프트웨어를 제공할 때, 하드웨어에 따라 issue가 발생할 수 있는데 Docker를 사용하면 앱을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있게 해준다.
  • 즉, Docker를 사용하면 앱을 인프라에서 분리해 소프트웨어를 제공할 수 있다.

Docker 플랫폼

  • Docker는 컨테이너라 하는 느슨히 격리된 환경에서 애플리케이션을 패키징하고 실행하는 기능을 제공한다.
  • 각각의 컨테이너는 앱을 실행시키기 위해 필요한 모든 정보를 포함하지만 용량이 적은 것이 특징이다.
  • 컨테이너 각각은 격리되어 있기 때문에 동시에 여러개의 컨테이너를 사용하는 것도 가능하다.
  • 또한 컨테이너는 공유가 가능하기 때문에 작업을 같이하는 모든 사람이 같은 환경 속에서 앱을 실행 시키는 것이 가능하다.

Docker의 장점

  • 개발자가 표준화된 로컬 컨테이너에서 작업을 개발 속도를 향상시킬 수 있다.
    • 컨테이너는 CI/CD 워크플로우에도 적합하기 때문에 자동화에도 도움이 된다.
  • 컨테이너의 이식성이 좋기 때문에 노트북, 서버, 클라우드 플랫폼 등 여러 환경에서 실행이 가능하다
  • 하이퍼바이저 기반 가상 머신에 대해 더 빠르고 가볍기 때문에 같은 리소스 하에서 더 많은 앱을 실행시킬 수 있다

Docker 아키텍쳐

Docker Architecture

Docker demon

  • Docker API 요청을 수신하고, 이미지, 컨테이너, 네트워크, 볼륨과 같은 Docker 개체를 관리해준다.
  • Client와 Rest api를 사용해 통신하거나, Docker 서비스를 관리하기 위해 다른 데몬과 통신할 수도 있다.

Docker client

  • 사용자가 docker 서비스에 접근하기 위해 docker client를 사용한다.
  • Docker demon에 요청을 보내면 데몬이 이를 수행하게 된다.

Docker registry

  • 실제 도커 이미지파일이 저장된 부분을 docker registry라 부른다.
  • 로컬에 이미지 파일을 저장할 수도 있고, 기본값으로는 docker hub에서 이미지를 찾게 된다.
  • docker pull 또는 docker run 명령어를 사용했을 시 docker는 레지스트리에서 필요한 이미지를 가져오게 된다.

Docker image

  • Docker 컨테이너를 생성하기 위한 정보가 포함되어 있는 읽기 전용 템플릿을 docker image라 한다.
  • 운영체제 실행을 위한 정보와 애플리케이션을 실행하기 위한 정보가 포함되어 있다.
  • 이미 만들어진 image를 가져올 수도 있고, dockerfile 생성을 통해 자신만의 이미지를 생성할 수도 있다.
  • Dockerfile의 각 줄은 이미지의 레이어를 형성하고, 파일을 수정해 이미지를 다시 빌드할 때는 변경된 레이어만을 다시 빌드하게 되어 성능상에 이점을 가질 수 있다.

Docker container

  • 실제 실행 가능한 이미지 인스턴스를 docker container라 부른다.
  • Docker api 또는 cli를 통해 생성, 시작, 중지, 삭제 등의 작업이 가능하며, 컨테이너에 스토리지를 연결하거나, 네트워크에 연결하거나, 현재 상태를 기반으로 한 새로운 이미지를 생성할 수도 있다.
  • 컨테이너는 기본적으로 다른 컨테이너나 호스트와 격리되어 있지만, 격리 수준은 제어 가능하다.

출처:
https://docs.docker.com/get-started/overview/

profile
냐아아아아아아아아앙

0개의 댓글

관련 채용 정보