CS

[Docker] 도커를 왜 사용할까?

준몽쓰 2024. 11. 5. 16:36

솔루션 엔지니어를 하면서 주로 리눅스 서버를 많이 다룬다. 기관을 방문할 때 기존 서버를 이전하면 대부분 도커와 클라우드 환경으로 전환하는 곳들이 많다. 회사에서도 도커 관련하여 공부를 하라해서 이 글을 작성하게 되었다.

 

서버를 많지다 보면 도커로 구성 되어있다고 하는데 uname -a 명령어를 치면 리눅스라고 떠서 도커가 리눅스인가??.. 라는 생각을 했다. CS지식이 많이 딸려 정확하게 이해하진 못했다..

 

이번 계기로 도커의 개념을 알려고 한다.

 

<도커>

도커(Docker)는 소프트웨어를 컨테이너라는 가상화된 환경에 담아 실행하는 플랫폼이다. 이를 통해 애플리케이션을 더 쉽고 효율적으로 배포, 실행, 관리할 수 있게 해준다.

 

===================용어설명====================

1) 컨테이너(pod) : 배포가 된 기본적인 단위

2) 디플로이먼트 : 서비스를 배포한 덩어리 개념 (컨테이너 상위)

3) 서비스 : 디플로이먼트를 호출하기 위한 인터페이스 (서비스가 있어야 디플로이먼트 호출 됨)

4) 이미지 : 컨테이너를 commit 해서 만들거나 솔루션 구동 위한 기본적인 재료

ex) VM에서 OS 설치하기위해 iso 쓰는것 처럼 이미지는 pod(컨테이너) 배포하기 위한 기본

==============================================

 

<가상머신(VM) vs 도커 차이>

 

  • 환경 독립성: 컨테이너는 호스트 환경과 독립적이기 때문에, 어느 환경에서도 동일하게 동작할 수 있습니다. 개발, 테스트, 프로덕션 환경 간의 차이로 인한 문제를 줄일 수 있다.
  • 경량화된 가상화: 도커 컨테이너는 가상머신보다 훨씬 가볍고 빠르며, 동일한 호스트에서 여러 컨테이너를 효율적으로 실행할 수 있습니다.
  • 효율적인 리소스 사용: 도커는 가상화가 아니라 OS 레벨에서 애플리케이션을 격리해 자원을 효율적으로 사용할 수 있게 한다.
  • 확장성과 손쉬운 배포: 여러 개의 컨테이너를 쉽게 조합하고 배포할 수 있으며, 필요에 따라 인프라를 확장하기 용이합니다. 클라우드 네이티브 환경에서 특히 유용하다.
  • CI/CD 통합 용이성: 도커는 CI/CD 파이프라인과 잘 통합되어 자동화된 빌드, 테스트, 배포 프로세스를 구현하기에 적합

<도커 이미지 vs 도커 컨테이너 차이>

출처: http://rfriend.tistory.com

 

<도커 파일>

도커 이미지를 만들기 위해서는 도커 파일이 필요하다.

도커 파일을 이용해 이미지를 구성하기 위한 명령어들을 작성하여 이미지를 구성할 수 있다.

도커 파일은 이미지를 생성하기 위한 스크립트 파일이다.

주로 텍스트 형식의 명령어들로 구성되어 있으며, 이를 사용하여 이미지 빌드 과정을 자동화하고 문서화할 수 있다.

출처 : https://hstory0208.tistory.com

 

'CS' 카테고리의 다른 글

디자인 패턴 - 싱글톤 패턴 (Singleton Patton)  (2) 2023.04.29
프로세스 스케줄링  (0) 2023.04.01
운영체제 (OS: Operating System)  (0) 2023.03.18
MVC 패턴  (0) 2023.02.20