Jisoo.

기술블로그

1. Docker란 무엇일까


썸네일

Docker의 개념

애플리케이션을 필요한 모든 의존 모듈과 함께 패키징하여 어디서든 동일한 방식으로 실행할 수 있게 하는 플랫폼


💡 Docker를 왜 사용할까?

글 이미지

Docker는 애플리케이션을 실행하기 위한 설정, 종속성 등을 포함하는 이미지를 작성할 수 있습니다.

해당 이미지를 실행하면 컨테이너라는 독립된 실행 환경을 제공하여 어디서든 명령어만으로 동일한 실행 환경을 제공합니다.

건축에 비유하자면 이미지는 설계도에 해당하며 컨테이너는 그 설계도를 바탕으로 지어진 집에 해당합니다.

1. 협업에서의 이점

팀 프로젝트 시, 개발 언어나 프레임워크의 버전이 다를 경우 실행이 안된다거나 하는 문제를 겪을 때가 있습니다.

어찌저찌 버전을 맞춘다 해도 다른 필요한 애플리케이션을 다운로드 해야하는 번거로움이 존재합니다.

그러나 Docker를 사용한다면 특정 도구나 라이브러리 설치할 필요 없이 명령어만으로 애플리케이션의 실행이 가능합니다.

따라서 README 하나만 잘 적어놔도 실행, 배포 등 애플리케이션 관련된 대부분을 인수인계할 수 있습니다.

2. 관리적 측면에서의 이점

서버를 늘리거나 다른 곳으로 이전해야 할 경우가 발생할 수 있습니다.

Docker를 사용하여 서버를 패키징한 경우 이미지에 모든 개발 환경이 존재하므로 해당 이미지만 옮기는 것만으로 서버 이전이 가능합니다.

추가로 다음의 이점이 있습니다.

  • 특정 버전의 이미지를 저장하여 버전 관리 및 백업, 롤백이 가능합니다.

  • CI/CD 도구와 함께 사용하여 테스트 및 배포를 자동화할 수 있습니다.

  • kubernetes 를 이용하여 동시에 많은 컨테이너를 관리할 수 있습니다.

  • 독립된 환경이므로 보안상 이점이 있습니다.

  • 초대형 커뮤니티가 존재하여 수많은 이미지와 오픈 소스를 활용할 수 있습니다.

3. 자원 관리적 이점

Docker 이전에 독립적인 환경을 제공하는 기술에는 가상머신(VM)이 있었습니다.

가상머신은 하이퍼바이저를 이용하여 하나의 컴퓨터(호스트)에서 다수의 운영체제를 실행할 수 있는 기술입니다.

이 방식은 하나의 VM마다 독립된 OS를 실행하므로 CPU, 메모리, 디스크 등 자원 소모가 크고 OS의 부팅 시간을 기다려야 한다는 단점이 존재합니다.

Docker의 경우 OS를 실행하지 않고 호스트의 커널만을 공유하므로 자원 소모가 적고 빠르게 실행할 수 있습니다.

따라서 경량화된 가상화 방식이라고 볼 수 있습니다.


💡 클라우드 환경에서의 Docker

글 이미지

애플리케이션을 클라우드 환경에서 실행하는 것은 큰 메리트가 존재합니다.

서버, 스토리지, 네트워크 등 모든 것을 마이크로소프트, 구글에 맡길 수 있다는 것은 엄청난 장점입니다.

기존에 클라우드 환경을 조성하기 위해서는 IaaS 또는 PaaS의 선택지가 존재하였습니다.

클라우드 환경을 조성하는 데는 훌륭한 방법이나 몇 가지 단점이 존재합니다.

- IaaS

IaaS 모델은 클라우드 제공자가 가상화된 서버, 네트워크 인프라를 제공하는 방식입니다.

애플리케이션의 컴포넌트를 각각의 가상 머신에서 동작시키므로 비효율적이고 높은 운영비를 지급해야 하는 단점이 존재합니다.

- PaaS

PaaS 모델은 인프라뿐만 아니라 운영체제, 데이터베이스 등 플랫폼을 함께 제공합니다.

애플리케이션의 컴포넌트를 각각 클라우드의 매니지드 서비스로 옮기는 복잡한 과정이 필요하며 특정 클라우드에 종속되는 단점이 존재합니다.

- 두 서비스의 장점을 합친 Docker

Docker는 이러한 단점을 제거하여 클라우드에 종속되지 않고 컨테이너에서 각각의 컴포넌트를 실행하여 독립적이고 효율적인 클라우드 환경을 제공합니다.


💡 마무리

이처럼 Docker를 사용할 경우 기존 방식보다 저비용, 효율적으로 애플리케이션의 관리를 할 수 있습니다.

다음에는 Docker 구동 방법에 대해서 알아보겠습니다.

Docker 공식 문서

이미지 출처


https://qualitapps.com/en/what-are-the-iaas-paas-and-saas-cloud-service-models/

2. Docker 설치 및 실행하기

1


Docker 시리즈의 다른 포스트

썸네일-0

4. Dockerfile과 Image *미완성*

Dockerfile과 이미지에 대해서 알아봅시다.


2024년 10월 15일

썸네일-1

3. Docker Container

Docker Container에 대해서 간단히 알아봅시다.


2024년 10월 10일

썸네일-2

2. Docker 설치 및 실행하기

Docker를 설치하고 어떻게 사용하는지 알아봅시다.


2024년 10월 04일