개요
- 컨테이너(container)란?
소프트웨어를 다른 컴퓨팅 환경으로 이동하면서도 안정적으로 실행하는 방법이 없을까?라는 고민이 생기면서 탄생한 기술이 컨테이너임
컨테이너는 애플리케이션을 실제 구동 환경으로부터 추상화할 수 있는 논리 패키징 메커니즘을 제공함
즉, 애플리케이션과 애플리케이션이 동작하기 위해 필요한 라이브러리나 모듈 등을 묶어줌
애플리케이션과 애플리케이션을 구동하는 환경을 컨테이너 박스에 넣고 하나로 만든 거라고 생각하면 됨
컨테이너를 옮기면 안에 넣었던 소프트웨어들이 모두 함께 움직이기 때문에 하나하나 관리할 필요가 없게 됨
출처: https://www.msystechnologies.com/services/devops/docker-consulting-services
이러한 컨테이너 기술이 있기 전에 VM 기술이 있었는데, VM은 기존 환경 위헤 가상화 기술을 이용해 Guest OS를 새로 설치함 (OS 위에 OS를 설치함)
이에 반해 컨테이너는 OS가 아닌 묶었던 애플리케이션만 관리하며, 필요한 만큼의 OS 자원을 컨테이너에 할당할 수 있음
- 도커(Docker)란?
리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하기 위해 시작된 오픈 소스 프로젝트임
즉, 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼임
- 도커 이미지(Docker Image)란?
이미지는 컨테이너를 생성하기 위해 필요한 설계도를 말함
도커는 이미지를 보고 컨테이너를 생성하게 됨
즉, 도커가 찍어놓은(빌드한) 사진을 인화(실행)하면 컨테이너가 나오는 것임
도커 이미지는 도커 파일(Docker File)로 만들 수 있음
도커 파일은 도커가 어떻게 이미지를 만들지 이해하도록 적은 파일임
도커 허브를 이용해 이미지를 공유할 수 있고, 인터넷만 연결되어 있으면 어디에서든 이미지를 다운로드할 수 있게 됨
- 정리