1. 도커와 컨테이너
2. 가상화 방식 비교
3. 이미지
도커란 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
컨테이너라 하면 배에 실는 네모난 화물 수송용 박스를 생각할 수 있는데 각각의 컨테이너 안에는 옷, 신발, 전자제품, 술, 과일등 다양한 화물을 넣을 수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있다.
서버에서 이야기하는 컨테이너도 이와 비슷한데 다양한 프로그램, 실행환경을 컨테이너로 추상화
하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화할 수 있고 조립PC, AWS, Azure, Google cloud등 어디에서든 실행할 수 있다.
즉 한마디로 설명하면
- 컨테이너 : 다양한 프로그램 및 실행환경등을 넣어놓은 독립적인 공간
- 실제 컨테이너 : 배송지에서 요청한 물품등을 넣어놓은 독립적인 공간
- 도커 : 컨테이너들을 관리(실행 및 배포 등)하는 역할
- 컨테이너들을 운반하는 화물선- 위 설명을 이해하기 위한 그림은 아래와 같은데, 하나의 컨테이너는 텐서플로우를 위한 환경이고, 다른 하나의 컨테이너는 파이토치를 위한 환경임
컨테이너는 격리된 공간에서 프로세스가 동작하는 기술입니다. 가상화 기술의 하나지만 기존방식과는 차이가 있습니다.
기존의 가상화 방식은 주로 OS를 가상화하였음.
도커에서는 OS가 아닌 프로세스를 격리하는 방식을 사용
구조 차이를 보면 아래 그림과 같음
- 가상머신은 Hypervisor를 통해 OS를 가상화 수행
- 도커는 Docker engine을 통해 프로세스를 가상화 수행
컨테이너 생성에 필요한 파일과 설정값등을 포함하고 있는것