1) importance of independent, standardized "application packages"
-> differecnt development & production environment
-> demand for exactly same environment for running the app
-> docker can enable certain node version to lock into docker container
-> share a common development environment/setup
-> don't need to uninstall and reinstall local dependencies and runtimes all the time
2) the container could be lightweighted unlike virtual machine
3) 이미지: 설정 명령(environment), 코드가 포함된 공유 가능한 패키지
컨테이너: 이미지의 구체적인 실행 인스턴스
여러 컨테이너는 서로 간섭하지 않고 동일한 이미지를 기반으로 할 수 있다.
-> 이미지를 기반으로 컨테이너 실행
4) dockerfile : 자체 이미지를 빌드할 때 실행하려는 도커에 대한 명령이 포함