Docker

도커 

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 

 

오픈소스
누구나 도커의 코드를 확인하고 수정할 수 있으며, 무료로 사용할 수 있다는 뜻입니다.
가상화 플랫폼
하드웨어 리소스를 효율적으로 활용하기 위해 애플리케이션을 격리된 환경에서 실행할 수 있도록 해 주는 기술

 

도커는 2013.3 에 처음 세상에 알려지게 되었고, go 언어로 개발 중에 있습니다.

 

 

컨테이너 ( Container )

오늘날 컨테이너라고 하면 주로 선박 운송용 컨테이너를 지칭합니다. 

선박 운송시 모든 선적물은 거대한 상자모양의 컨테이너를 통해 패키징 된 후 화물선에 선적됩니다.

컨테이너는 구제적으로 표준화, 규격화된 크기를 가지고 있습니다.

그래서 컨테이너와 관련된 보관, 운송과 관련된 장비, 제도, 프로세스 등은 모두 국제 표준에 맞게 설계되어집니다.

 

이러한 표준화를 통해 해상 운송업자는 컨테이너 안에 어떤 물건이 담겨 저 있는지 전혀 알 필요가 없고, 그저 컨테이너 단위로 선적하여 운송하고 하역하고 보관하면 됩니다. 만약 표준화가 되어 있지 않다면 제각기 다른 물건의 크기, 모양 등에 맞춰 서로 다른 운송장비, 보관방법, 프로세스 등이 필요하게 될 것입니다.

 

도커의 컨테이너도 이와 같은 컨셉을 가지고 있습니다. 도커는 서비스를 운용하는데 필요한 실행환경, 라이브러리, 소프트웨어, 시스템 도구, 코드 등을 컨테이너라는 표준화된 단위로 추상화합니다. 이렇게 만들어진 컨테이너는 컴퓨팅 환경에 상관없이 서비스가 실행될 수 있도록 해줍니다.

 

실제 컨테이너의 특성처럼 서비스 관리자는 도커라이징 된 컨테이너가 어떤 런타임을 필요로 하는지, 어떤 라이브러리와 코드를 필요로 하는지 전혀 알 필요가 없고, 그저 컨테이너를 어딘가에서 가져와서 서비스를 운영한 컴퓨팅 환경에서 실행하기만 하면 됩니다. 

실행된 서비스는 컴퓨팅 환경과 독립된 가상의 환경에서 실행되며, 일관된 결과를 보장합니다.

도커라이징
애플리케이션을 도커 컨테이너에서 실행할 수 있도록 설정하는 과정을 의미

 

도커 이미지 ( Docker Image )

도커 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않습니다.

컨테이너를 생성하기 위해 필요한 설계도라고 이해하시면 됩니다.

컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장됩니다.

같은 미지에서 여러 개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있습니다.

 

쉽게 설명하면 도커가 찍어놓은 ( 빌드한 ) 사진 ( Image ) 을 인화 ( 실행 ) 하면 컨테이너가 나오는 것입니다. 

사진은 여러 번 인화할 수 있고, 똑같은 사진이 인화되는 것처럼 다른 서버에서 도커가 이미지를 사용해 컨테이너를 만들면 똑같은 환경을 구축할 수 있습니다.

 

도커 파일 ( Docker file )

도커 이미지는 도커 파일로 만들 수 있습니다.

도커 파일은 도커가 어떻게 이미지를 만들지 이해하도록 적은 파일입니다.

도커 파일에 Image를 어떻게 빌드할지 적어놓으면 도커가 그것을 읽고 이미지를 생성하게 됩니다.

위에서 말한 도커라이징이 이러한 과정입니다.

 

요약

도커는 애플리케이션을 컨테이너 기반으로 실행할 수 있게 해주는 오픈소스 가상화 플랫폼입니다.

2013년 처음 발표된 도커는 Go 언어로 개발되었으며, 컨테이너라는 표준화된 단위를 통해 시스템 환경과 독립된 애플리케이션 실행을 지원합니다.

컨테이너는 선박 운송의 컨테이너처럼, 도커의 컨테이너는 애플리케이션 실행에 필요한 모든 요소를 하나의 표준화된 캐피지로 묶어 어디서든 동일하게 실행될 수 있도록 해줍니다.

도커라이징은 애플리케이션을 도커 컨테이너에서 실행할 수 있게 설정하는 과정으로, 주로 Dockerfile을 통해 이미지를 생성 및 실행 환경을 정의합니다.

도커 이미지는 컨테이너 실행에 필요한 모든 파일과 설정값을 포함하는 불변의 설계도로, 이미지에서 여러 개의 컨테이너를 생성하여 동일한 환경을 구성할 수 있습니다.

 

도커를 통해 다양한 환경에서 일관된 결과를 보장하며 애플리케이션을 배포하고 관리할 수 있습니다.

 

도커 사용법

도커를 사용하는 방법은 도커 사용법에서 따로 정리하겠습니다.

'CS' 카테고리의 다른 글

DLL 이란  (1) 2024.11.07
Docker 실습  (0) 2024.10.28
DNS 의 기초 상식  (0) 2024.08.19
운영체제 기본에 대해서  (0) 2024.06.28
Cookie vs Session vs JWT  (0) 2024.05.15