티스토리 뷰

Docker

[Docker] 도커 기본 개념 파헤치기

코딩계란 2024. 12. 19. 01:14
728x90

 

도커란 무엇인가요?

도커(Docker)

도커는 프로그램이나 데이터를 독립된 환경에서 격리하여 실행할 수 있는 기능을 제공하는 소프트웨어입니다. 각각의 독립된 환경을 컨테이너(Container)라고 하며, 도커를 통해 이러한 컨테이너를 생성하고 관리할 수 있습니다.

 

이를 통해 사용자는 동일한 하드웨어에서 여러 독립된 환경을 실행할 수 있으며, 개발, 테스트, 배포 환경에 상관없이 어디에서든 프로그램을 동일하게 실행할 수 있습니다.

💡도커는 내부적으로 리눅스를 사용하며 컨테이너에서 동작시키는 프로그램도 리눅스용 프로그램입니다. 
💡도커 소프트웨어 본체는 도커 엔진(Docker Engine)이라고 합니다.

 

컨테이너  

컨테이너는 도커가 제공하는 독립된 실행 환경입니다.

  • 하나의 도커 환경에서 여러 개의 컨테이너를 생성할 수 있으며, 생성 개수는 사용 가능한 시스템 리소스(메모리, CPU, 디스크 용량)에 따라 결정됩니다.
  • 컨테이너는 서로 격리되어 있으며, 각각 독립된 애플리케이션과 실행 환경을 포함합니다.

컨테이너  VS 가상  머신 (VM)

컨테이너 (Container)  가상 머신 (Virtual Machine) 
운영체제의 일부 기능을 호스트 컴퓨터에 의존   물리적인 컴퓨터의 부품들을 소프트웨어로 대체하여 실행
물리 서버에 리눅스 기능이 필요하며,
컨테이너의 내용도 리눅스 운영체제 
호스트 컴퓨터와 독립적으로
아무 운영 체제나 설치할 수 있다.
한 OS를 공유하기 때문에
보안적으로 문제가 생길 수 있다
각각의 VM이 분리되어 있어
문제가 생겨도 서로에게 영향이 가지 않는다.
가상 머신에 비해 가볍고 빠르다.  

 

 

이미지

이미지컨테이너를 생성하기 위한 템플릿입니다.

  • 예를 들어, Python 컨테이너를 만들려면 Python 이미지를 사용할 수 있고, MySQL 데이터베이스 컨테이너를 생성하려면 MySQL 이미지를 사용하면 됩니다.
  • 이미지는 미리 정의된 소프트웨어와 환경을 포함하며, 이를 기반으로 컨테이너가 실행됩니다.
  • 컨테이너로 이미지를 생성할 수 있습니다. (특정한 빵을 만드는 틀을 제작)
💡 이미지는 "빵틀"로 비유할 수 있습니다. 빵틀에서 빵(컨테이너)을 만드는 것처럼, 이미지를 사용해 컨테이너를 생성하고 실행합니다.

 

도커의 구조

  • 운영체제 위에 도커 엔진(Docker Engine)이 실행되며, 그 위에서 컨테이너(Container)가 동작합니다.
    컨테이너 내부에는 리눅스 운영체제와 유사한 환경이 존재하며, 리눅스 커널을 기반으로 작동합니다.
  • 따라서, 컨테이너 내부에서는 리눅스 운영체제에서 실행 가능한 소프트웨어만 사용할 수 있습니다.
    다만, 윈도우 컨테이너를 사용하면 윈도우에서 실행 가능한 소프트웨어를 사용할 수도 있습니다

도커 허브(Docker Hub)

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

  • 도커 이미지를 배포하는 서비스를 하는 레지스트리.  
728x90