본문 바로가기
Development/Docker

Docker란?

by Barcy 2024. 8. 12.

 

Docker는 소프트웨어 개발과 배포를 쉽게 하기 위해 만들어진 툴입니다.

 

소프트웨어 배포의 문제

 

개발자들이 소프트웨어를 만들 때, 개발 환경과 실제 운영 환경이 다를 수 있습니다. 예컨대, 개발자의 컴퓨터에서는 잘 돌아가던 프로그램이, 다른 사람의 컴퓨터나 서버에서는 잘 안 돌아가는 문제가 생길 수 있습니다. 왜냐하면 컴퓨터마다 설치된 프로그램 버전이나 설정이 다를 수 있기 때문입니다.

 

 

Docker 가 해결하는 방법

 

Docker는 Container라는 기술을 이용해 이 문제를 해결합니다. Container는 프로그램이 실행되는 데 필요한 모든 것을 하나의 묶음으로 만들어서, 어디서든 똑같이 작동하게 해 줍니다. 프로그램이 실행되는 데 필요한 모든 파일과 설정을 하나의 패키지로 묶은 것입니다. 이 패키지를 컨테이너라고 부릅니다. 이 컨테이너는 어디서든 똑같이 작동합니다. "내 컴퓨터에서는 잘 됐는데, 왜 여기는 안되지?" 라는 문제가 줄어듭니다.

 

Image

그리고 Image라는 것도 있습니다. Image는 프로그램과 그것이 작동하는 데 필요한 모든 파일, 설정, 그리고 환경을 하나의 파일로 묶어둔 것을 말합니다. 이 Image가 Container의 설계도 역할을 합니다.

 

이 설계도를 바탕으로 컨테이너를 만들고 실행할 수 있습니다. 그래서 이미지는 여러 번 사용할 수 있습니다.

 

Image를 케이크 레시피라고 생각해 볼 께요. 이 레시피 (Image)를 가지고 있으면, 어디서든 이 레시피대로 케이크(Container)를 만들 수 있습니다.