호비시의 끄적끄적

Docker ? 본문

Back

Docker ?

호비시 2022. 6. 25. 09:00

Docker란?

도커는 2014년 6월 Docker 1.0 발표한 기술로 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
백엔드 프로그램,데이터베이스, 메시지큐 등을 컨테이너로 추상화가 가능하다.

Docker 가 없었을 때를 생각해보자

우리가 열심히 만든 서비스를 배포한다고 가정하자. 그럼 서비스를 제공하기 위한 서버가 필요하다.서버에서 작성한 코드를 실행하기 위해서는 다양한 작업을 해줘야 한다.

os 설치, 실행환경 세팅(java, python 등), 어플리케이션 코드(or 빌드) 다운로드, 필요한 라이브러리 다운로드 등등 서버에 다양한 사전작업이 필요하다.

이런 우여곡절 끝에 서버에 환경설정을 끝내고 배포했다고 가정하자. 하지만 서비스를 운영하다 보면 다양한 요청이 들어올 수 있다.

예를 들어 ubuntu 말고 centos 서버에서 사용하고 싶다던지, python 버전을 업데이트, 기존언어와 다른 언어로 서비스를 배포해야 한다던지 등등 서비스가 커지고 서버가 늘어나면 어플리케이션들을 원하는 대로 실행하는 것의 난이도가 매우 상승한다.
각 상황에 따른 스크립트를 작성하고, 모든 서버에서 원하는 환경설정을 해줘야하기 때문이다.

그렇기 때문에 결국 원하는 프로그램을 실행하는 것이 어려워진다.

Docker 의 등장

Docker가 없었을 때 원하는 프로그램을 실행하기 어려운 문제가 있었다.

이러한 문제를 해결하기 위해 서버 운영에서 인프라 관리와 어플리케이션 작성을 분리하고자 나온 개념이 Docker 이다.

Docker 는 실행환경, 실제 서비스 코드, 필요한 라이브러리, 설정 파일 등등 서버가 작동하기 위한 모든 정보를 도커 이미지 라는 곳에 정의한다.

서버에서는 이 도커 이미지 파일만 실행하면 되는 것이다.

이러한 개념을 적용시키기 위해서는 3가지 step이 필요하다.

  1. 이미지를 생성
    • 일관성 있게 이미지를 만들 수 있고, 어플리케이션을 실행하는데 필요한 모든 것을 설정할 수 있는 이미지
  2. 이미지를 공유
    • 이미지가 어디에서든 잘 전달할 수 있게 만들어 필요한 곳에서 사용할 수 있게 한다.
  3. 이미지를 실행
    • 일관성있게 이미지를 실행할 수 있다.

이러한 3가지 step을 거쳐 Docker는 원하는 프로그램을 쉽게 실행하기 위한 플랫폼이 된다.

Docker의 구성요소

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

  • docker image & container
    • image는 어플리케이션을 실행하기 위한 필요한 모든 것이 생성되어 있는 파일이다.
    • container는 image를 사용하여 실행한 것이다. 프로세스의 독립성을 보장하기 위해서 네트워크나 저장소가 분리되어 있다.
  • docker registry
    • docker image를 저장하는 공간
  • dockerd
    • docker API requests를 받아서 docker object(image,containger 등)을 관리한다.
  • docker client
    • 사용자가 docker를 사용하기 위해서 사용하는 cli

'Back' 카테고리의 다른 글

Adapter pattern  (0) 2022.07.29
로그인 관리 Session? JWT  (0) 2022.06.29
객체지향 프로그램이란  (0) 2022.06.20
git bash ec2 연결  (3) 2022.04.18
JWT  (0) 2022.04.15
Comments