Image란?
- 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일 된 실행 파일을 묶는 형태
- 읽기/쓰기 액세스 권한이 있는 인스턴스를 실행하는 컨테이너의 “블루프린트”
- 이미지는 빌드하면 그 시점의 코드가 유지됨 / 읽기 전용!
- 즉, 코드의 수정이 있다면 빌드를 다시 해야 함
- Image는 name:tag로 구성(node:14)
- 이미지를 공유하여 사용한다!
Image는 캐시를 사용해서 빌드!
- 레이어(Step)을 기반으로 빌드한다.
- 변경사항이 있는 레이어부터 모든 레이어를 다시 빌드한다.
- 따라서, COPY package.json / RUN npm install을 먼저 작성하는게 효율이 좋음 ⇒ 빌드시간 감소
Container란?
- 실행중인 이미지 한개의 이미지로 여러개의 Container를 만들 수 있음
- 각각 독립적이기 때문에 로컬환경이랑 포트를 공유하지 않는다!
사용법
docker pull [node]
docker run [node]
docker ps -a
docker run -it node
Docker Hub
- 만들어진 이미지를 공유하는 곳
- 수 많은 공식이미지가 존재
- 내가 만든 이미지를 공유할 수 있음
Docker Hub