도커개념, 이미지란, 컨테이너란, Dockerfile이란, docker-compose
도커의 개념
- 컨테이너 패키징 플랫폼
- 같은 컴퓨터 내에서 공간을 분리하여 어플리케이션을 구동시킬수 있다.
- ex) 서버, db, 클라이언트 등등등
- 리눅스의 기능을 사용하여 프로세스를 격리한다.
- 윈도우에서 도커를 사용할 경우 WSL2(리눅스 하위 시스템)를 설치하여 리눅스 커널을 이용하여 컨테이너 관리를 한다. MAC은 없어도 된다.
컨테이너란
- 호스트의 커널을 공유받는 격리된 환경, 다른 OS에 있는것처럼 어플리케이션 실행이 가능하다.
- 호스트 OS(도커를 설치한 OS)를 공유하므로 컨테이너 내에서 항상 OS설치를 필요로 하는것은 아니다.
- 여러개를 띄울 경우 메모리 점유율이 높아질 수 있다. 컨테이너를 여러개 개 돌릴경우 16기가 메모리가 모자란다.
이미지란
- 컨테이너(가상의 프로세스 공간)를 띄우기 위해 만드는 템플릿.
- Dockerfile이란 도커 이미지를 빌드하기 위한 텍스트 파일.
- 우리가 불러오는 통상적인 이미지들, 예를들어 docker pull mysql 이런식으로 불러오는 이미지들은 공식 이미지이며 https://hub.docker.com/에서 세부내역 확인이 가능하다.
docker-compose란
- 도커 컨테이너를 정의하고 실행하는 도구로 개발 초기단계에서 여러 컨테이너를 동시에 실행하고 관리하기 용이하다. 예를들어 멀티컨테이너로 client, server, db를 한번에 올릴수 있다. 각 컨테이너간의 의존성 관리 및 실행순서 제어등을 할 수 있다.
도커의 장점
- 컴퓨터를 여러개 운영하는것보다 비용적, 시간적으로 매우 효율적이다.
- 도커 엔진이 설치된 모든 머신, 혹은 가상머신에서 동일한 환경으로 실행이 가능하다.