Infra Architecture/Container

[Containerization] 컨테이너

검은 까마귀 2023. 9. 15. 10:36

컨테이너란??

사전적 의미: 물건이나 물질을 보관, 운송할 목적으로 사용되는 상자를 의미합니다

약간.... 큰 상자 느낌 BOX <<<<< 컨테이너 

 

그렇다면실생활에서 컨테이너를 왜 사용하게 될까요?

 

예를 들어 봅시다!🙏

오늘 집이 하와이로 이사를 가야하는 날입니다.
집에 가구도 정리하고 생활용품도 정리해보니 박스가 ♾️개가 나왔어요
저는  ♾️개의 박스를 일본으로 보내야합니다.

 

 

그럴때 여러분들에게는 2가지 선택사항이 있습니다.

1. 송장을 ♾️개 출력해서 보낸다.
2. 1개의 컨테이너에 ♾️개를 넣고 화물 운송장을 하나 출력해서 보낸다.

 

 

 

저는 2번째(1개의 컨테이너에 ♾️개를 넣고 화물 운송장을 하나 출력해서 보낸다.)를 선택하겠습니다!

이유는 간단하자나요?

1개를 옮겨서 배송일자도 맞추고 일본으로 이사할때 짐이 한번에 들어와야 때문입니다

 

그렇다면 일상생활의 컨테이너에 대해 알아보았으니

소프트웨어에서의 컨테이너는 어떤 의미일까요?

 

제가 소프트웨어 컨테이너를 이렇게 이해한 방법은 이렇습니다!

저는 윈도우OS(HOME)를 사용하고 있습니다.
근데 이번에 서버를 구축할때 리눅스OS(NEW HOME)으로 이사 준비를 해야됩니다.
저는 윈도우OS(HOME) 사용하던 시스템 기능(가전제품, 일상생활용품)을 리눅스OS(NEW HOME) 옮길려고 해요

 

 

저에게 이런 상황이 닥쳤다면 어떻게 해야할까요?

1. 윈도우즈 기반의 기능들을 리눅스 기반에서 돌아갈수 있도록 재설치를 한다
2. 윈도우즈 기반의 기능들을 한번에 묶어 리눅스기반에 넣는다

 

물론 기능이 1개나 몇개 되지 않는다면 리눅스기반에 맞춰 기능들을 설치하는게 좋을 수도 있겠죠?

하지만 ♾️개라면? 

바로!! 그럴 때 컨테이너를 사용하게 됩니다

 

컨테이너

코드와 모든 종속성을 패키지화하여 응용프로그램이 실행한 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록
하는 소프트웨어의 표준단위다.

 

 

 

물론, 이식성이라는 장점만 갖고 있는건 아닙니다.

여러가지 장점들이 있으니 알아보겠습니다

 

  1. 환경의 일관성
  2. 배포와 스케일링 용이성
  3. 개발과 운영의 표준화
  4. 리소스 효율
  5. 버전관리와 롤백 용이성
  6. 마이크로서비스 아키텍처와의 호환성
  7. 보안
  8. 빠른 개발 주기

 

이러한 컨테이너의 장점들이 있습니다.

 

이런 소프트웨어 컨테이너를 대표하는게 

바로바로 Docker 입니다.

 

다음번에 Docker에 대해 알아보고 실습하며

나열한 장점들을 탐색하는 시간을 갖도록 하겠습니다.

 

반응형