[Docker] 도커(Docker)란?

류재성's avatar
Jul 19, 2024
[Docker]  도커(Docker)란?
 
💡
Docker는 소프트웨어 애플리케이션을 컨테이너라는 격리된 환경에서 실행할 수 있도록 해주는 플랫폼이다. 이를 통해 애플리케이션과 그 종속성을 하나의 패키지로 묶어, 어디서나 일관되게 실행할 수 있다. Docker는 특히 개발, 테스트, 배포 환경 간의 차이를 줄이는 데 매우 유용합니다.
 

1. 배포 과정 비교

1.1 기존 CI/CD 배포

notion image
 
① 개발자가 로컬 환경에서 코드를 작성한다.
② 개발자가 작성한 코드를 GitHub 저장소에 푸시(push)한다.
③ 배포 환경과 동일한 환경을 세팅 후 테스트, 실행 가능한 형태로 빌드한다.
④ EC2에 배포 환경을 세팅 후 배포한다.
 

1.2 도커를 사용한 CI/CD 배포

notion image
 
① 개발자가 로컬 환경에서 코드를 작성한다.
② 개발자가 작성한 코드를 GitHub 저장소에 푸시(push)한다.
③ 로컬 환경에서 테스트, 빌드 후 도커 이미지를 생성한다.
④ EC2에 도커 설치 후 도커 이미지를 푸시한다.
 
💡
기존의 배포는 개발 환경과 배포 환경이 일치하지 않아 동작하지 않는 문제가 발생했다. 하지만 도커를 사용하면 동일한 도커 이미지 환경에서 실행되기 때문에 배포 환경에 구애받지 않는다.
 

2. 도커 컨테이너(Docker Container)

💡
도커 컨테이너(Docker Container)는 응용 프로그램과 그 응용 프로그램이 동작하는 데 필요한 모든 것(라이브러리, 설정 파일, 환경 변수 등)을 패키지화하여 일관된 실행 환경을 제공하는 경량화된 가상화 기술이다. 도커 컨테이너를 사용하면 개발, 테스트, 배포 환경 간의 차이를 최소화하여 애플리케이션의 일관된 동작을 보장할 수 있다.
 

3. 도커 이미지(Docker Image)

💡
도커 이미지는 컴퓨터 프로그램과 그 프로그램이 필요한 모든 것을 하나의 패키지로 묶은 파일이다. 이 패키지는 운영 체제, 프로그램, 라이브러리 등 프로그램이 실행되는 데 필요한 모든 것을 포함하고 있다. 이미지는 애플리케이션과 필요한 라이브러리, 환경 설정을 포함한 실행 가능한 스냅샷이다.
 

4. 이미지와 컨테이너의 관계

💡
이미지(Docker Image): 요리 레시피와 같다. 어떻게 요리를 만들지에 대한 지침이 포함되어 있다. 하지만, 레시피 자체는 요리가 아니다.
컨테이너(Docker Container): 레시피를 따라 만든 실제 요리다. 이미지를 기반으로 실행되는 실제 프로그램 환경이다.
 
Share article

{CODE-RYU};