도커(Docker)
: 리눅스 컨테이너에 리눅스 어플리케이션을프로세스 격리기술
을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다.
도커 엔진(Docker Engine)
: 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 도커의 프로젝트이다.
컨테이너(Container)
는 어플리케이션을 다른 환경에서 빠르고 안정적으로 실행 할 수 있도록코드 + 모든 종속성
을 패키징하는 표준 소프트웨어 단위이다.도커 컨테이너 이미지(Docker Container Image)
는코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정
등 어플리케이션을 실행하는 데 필요한 모든 것을 포함하는
경량의 독립 실행형 소프트웨어 패키지이다.
[Docker 래퍼런스]
도커 컨테이너는 어플리케이션을 다른 환경에서 실행할 수 있도록 해주는것이라고 생각한다.
그런데, 우리가 평소에 다른 환경을 구동하기위해 가상머신을 이용할때가 있는데,왜 도커를 사용할까?
컨테이너
는 기본 운영체제 커널을 동일한 시스템의 다른 컨테이너와 공유하는 격리된 환경에서 어플리케이션을 실행하는 방법이다. (위에서 설명한프로세스 격리기술
)종속성, 필요한 라이브러리 및 바이너리와 함께 어플리케이션
을컨테이너 이미지
라고 하는 독립된 패키지로 패키지화하여 여러 컴퓨팅 환경에 쉽게 배포할 수 있다.- 가상머신과는 다르게, 하이퍼바이저 위에서 여러 개의 게스트 OS를 싱행하는 대신,
호스트 OS 커널을 사용하여 격리된 여러 개의 컨테이너를 실행한다.- 게스트 OS가 아닌 호스트 OS에 컨테이너형 가상화 소프트웨어를 설치하기때문에,
기존 가상화에 비해 더 가볍고 효율적이다. (컨테이너의 장점)설치 같은 번거로움을 줄이고, 성능도 좋아진다!
docker build
명령어를 통해서 Docker File을 Docker Image로 만든다.
docker run
명령어를 통해서 Docker Image를 Docker Container로 만든다.
로컬에서만 개발하다가 최종 프로젝트에 오면서 배포에 대한 기술이 필요해짐에 따라
배포에 관련된 기술들을 익힐 필요가 생겼다.. (S3, ELB, Docker, 메세지큐 등등..)
처음 접해보는 기술이라 프로젝트를 진행하는데에 차질이 없도록
하루에 1개씩이라도 기술을 찾아보며 익혀야겠다