도커 엔진의 핵심은 도커 컨테이너와 도커 이미지 이다.
도커 이미지 :
이미지는 컨테이너를 생설하 때 필요한 요소이며, 여러 개의 계층으로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용된다.
저장소 : 이미지가 저장된 장소
이미지 이름 : 해당 이미지의 역할
태그 : 이미지의 버전
도커 컨테이너 :
도커 이미지의 종류 : 하둡, 스파크, 스톰 등 빅데이터 분석 도구 까지 갖가지 종류
도커 컨테이너는 생성될 때 사용된 도커 이미지의 종류에 따라 알맞은 설정과 파일을 가지고 있기 때문에 도커 이미지의 목적에 맞도록 사용되는 것이 일반적이다.
그렇다면 일반적이지 않게 사용한다면 ??
컨테이너는 이미지를 읽기 전용으로 사용하되 이미지에서 변경된 사항만 컨테이너 계층에 저장하므로 컨테이너에서 무엇을 하든지 원래의 이미지는 영향을 받지 않는다.
docker run 명령어는 pull, create, start 명령어를 일괄적으로 실행한 후 attach가 가능한 컨테이너라면 컨테이너 내부로 들어간다.
run = (pull) + create + start + attach(-it)
create = (pull) + create + start + detach(-itd)
-it 옵션을 붙이지 않으면, 컨테이너 내부의 도커에서 셸을 정상적으로 사용할 수 없다. + 이미지와 컨테이너와 상호 입출력을 가능하게 한다.