반응형

오늘은 도커에 대해서 공부해 볼 예정입니다.

먼저 컨테이너에 대한 개념이 잡히지 않으셨다면

아래 글을 먼저 읽고 아래 내용을 봐 주시길 바랍니다.

https://jdcyber.tistory.com/69

 

컨테이너 이미지 이해하기: 애플리케이션 실행의 기본

컨테이너 이미지의 기본 개념컨테이너 이미지는 애플리케이션을 실행하는 데 필요한 모든 요소를 포함한 표준화된 실행 패키지 또는 "실행 환경"입니다.컨테이너 이미지는 애플리케이션을 실

jdcyber.tistory.com

도커(Docker)란 무엇인가?

 

도커는 컨테이너 가상화 기술을 이용해 개발자들이 프로그램을 효과적으로 배포하고

관리할 수 있도록 해주는 오픈 소스 프로젝트입니다.

이 기술은 각각의 애플리케이션을 컨테이너라고 불리는 독립된 환경에 격리시켜,

한 컴퓨터에서 여러 애플리케이션을 동시에 실행할 수 있게 해 줍니다.

이는 각 애플리케이션 사이의 충돌을 방지하고,

시스템 설정이 다른 환경에서도 동일하게 작동할 수 있게 합니다.

 

즉,

컴퓨터의 프로세스 (실행 중인 프로그램) 들을

마치 배에 실려있는 컨테이너처럼

각각 컨테이너로 격리시켜 하나씩 관리할 수 있는 기술입니다.


기존 가상화 방식과 도커는 어떤 점이 다른가요?

 

전통적으로 애플리케이션 격리는 가상 머신(VM)을 통해 이루어졌습니다.

가상 머신은 각각의 애플리케이션을 위해 별도의 운영 시스템(OS)을 설치하며, 이는 상당한 자원을 소모합니다.

도커는 이러한 점을 개선하여, 하나의 운영 시스템을 공유하면서도

애플리케이션을 격리시킬 수 있게 만들었습니다.

이로 인해 더 적은 자원을 사용하면서도 빠른 실행이 가능해졌습니다.

 

아직 VM에 대해 모르신다면 아래 글을 읽고 와주세요

(작성중)

 

즉, 이전에는  작업할 때

해당 OS와 충돌이 일어나는 프로그램이나

환경설정을 만들어 돌려야 하는 상황에서

Vm을 통해 충돌이 일어나지 않는

새로운 OS를 깔아서 사용했었는데요

이것이 바로 위에서 볼 수 있는

Vmware 같은 가상화 프로그램입니다.

Vmware 같은 가상 머신을 사용하기 위해서는

전체 OS를 설치하고 이용해야 하기 때문에

시간도 오래 걸리고 원래 pc의

성능이 떨어질 수밖에 없었습니다.

그래서 Docker는 이러한 문제점을 해결하기 위해

프로세스 격리라는 방식을 이용하게 되었습니다.

리눅스에서 이 방식을 컨테이너라고 설명하며

원래 PC의 OS 위에 다른 작업 필요 없이

Docker라는 엔진 (배) 위에 프로세스 (컨테이너)를

쌓아 실행하여 시간이나 성능의 낭비를 줄였습니다.


도커의 주요 구성 요소

1. 도커 파일(Dockerfile)

  • 도커 파일은 도커 이미지를 만들기 위한 스크립트입니다. 이 파일은 애플리케이션을 실행하는 데 필요한 모든 명령어를 포함하여, 이미지를 빌드하는 과정을 자동화합니다.

2. 도커 이미지(Docker Image)

  • 도커 이미지는 컨테이너를 실행하기 위한 기본 템플릿으로, 애플리케이션과 모든 종속성 및 라이브러리를 포함한 파일 시스템의 스냅샷입니다. 이미지는 변경되지 않으며, 같은 이미지에서 여러 컨테이너를 생성할 수 있습니다.

3. 도커 컨테이너(Docker Container)

  • 도커 컨테이너는 이미지를 기반으로 생성된 실행 가능한 인스턴스입니다. 이는 필요한 코드와 런타임, 시스템 도구, 시스템 라이브러리 등 실제 실행 환경을 모두 포함합니다. 컨테이너는 독립적으로 실행되며, 애플리케이션을 시작, 정지, 이동, 삭제할 수 있습니다.

여러분이 PC에 프로그램을 설치할 때 운영 환경을 고민하고

특정 경로에 맞춰 컴퓨터에 필요한 옵션을 만들고

힘들게 설치해보셨던 경험이 있을 텐데요.

컨테이너는 이러한 프로그램과 여타 환경까지 모두 포함하여 한번에 실행할 수 있도록 도와주는 기술입니다.

컨테이너 환경을 묶어서 배포한

컨테이너 이미지를 내려받아 구동하여 실행하기 때문에,

설치 및 설정 과정이 줄어들어 좀 더 편하게 사용할 수 있습니다.

컨테이너는 이미지를 기반으로 생성되며,

이미지를 실행한 상태로 파일 시스템과

애플리케이션이 실행된 상태라고ㄱ 보시는 게 좋습니다.

어떠한 것을 추가하거나 변하는 값은

바로 이 컨테이너에 저장이 됩니다


즉 생성과정은

도커 파일을 빌드하고 -> 도커 이미지를 생성하고 -> 도커 컨테이너를 생성합니다.

도커의 장점

 

도커는 여러 가지 면에서 개발 및 운영 효율성을 크게 향상시킵니다:

  • 환경 일관성: 개발, 테스트, 생산 환경 간 차이를 최소화합니다.
  • 이식성: 어떤 OS에서도 동일하게 실행됩니다.
  • 보안: 애플리케이션 간 격리를 통해 보안을 강화합니다.
도커의 확장성과 관리

도커 컨테이너는 단일 시스템에서 효율적으로 작동하지만,

대규모 애플리케이션을 여러 컨테이너로 관리할 때는 추가 도구가 필요합니다.

이런 경우, **쿠버네티스(Kubernetes)**가 중요한 역할을 합니다.

쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 강력한 시스템입니다.

이 도구는 도커와 같은 컨테이너 플랫폼을 사용하여 애플리케이션의 복잡한 관리 작업을 단순화하고,

대규모의 서비스를 쉽게 운영할 수 있게 해 줍니다.

 

자세한 정보와 쿠버네티스의 더 깊은 이해를 원하신다면,

다음 링크를 참조하세요: [https://jdcyber.tistory.com/46]

 

쿠버네티스 (Kubernetes)란? (쉬운 설명, 개념)

쿠버네티스 (Kubernetes)란?컨테이너화된 애플리케이션의 대규모 배포, 스케일링 및 관리를 간편하게 만들어주는 오픈 소스 기반 컨테이너 오케스트레이션(Container Orchestration) 도구입니다.뭐라고요

jdcyber.tistory.com


오늘은 운영팀 개발팀 모두가 사랑하는

도커에 대해서 알아봤습니다.

도커는 현대의 소프트웨어 개발에 혁명을 가져온 도구로서,

개발자와 운영팀 모두에게 꼭 필요한 기술입니다.

이는 더 빠르고 효율적인 애플리케이션 배포와 관리를 가능하게 하여,

기술 스택의 중요한 부분이 되었습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts