Docker
- 컨테이너를 만들고 매니지먼트할 수 있게 해 주는 툴.
컨테이너
- A standardized unit of S/W.
- 다른 말로 코드 패키지라 할 수 있음, 이 패키지에는 코드 뿐만 아니라 코드가 돌아갈 수 있도록 해 주는 여러 dependency들도 들어가 있음. (OS 레벨까지는 아님, OS 레벨에서는 Docker 깔 거임.)
- 예를 들어 NodeJS 애플리케이션 컨테이너라면 NodeJS 코드랑 NodeJS 런타임 뿐만 아니라 이 코드가 돌아갈 수 있도록 해 주는 모든 툴이 같이 있는 것이 컨테이너.
컨테이너를 떠올려 봅시다. 컨테이너에는 글로벌 스탠더드가 있습니다.
그렇기 때문에 배에 실을 때 생각을 덜 할 수 있죠.
Docker에서의 컨테이너도 그런 콘셉트를 따왔다는 것을 알고 있으면 좋습니다.
Docker가 깔려 있는 곳 어디서든 컨테이너를 문제 없이 가져올 수 있고
똑같은 컨디션에서 똑같은 애플리케이션의 아웃풋을 얻을 수 있는 것입니다.
예를 들면 OS마다 Python 버전이 달라서 애플리케이션이 똑같은 아웃풋을 낸다는 개런티가 없을 때 쓰면 좋겠죠?