You have several projects at your local machine where each project's dependencies contradict with each other. ex: project A requires python3.6, but project B requires python3.7 2. You need to have multiple machines set up the same working environment. 3. You want to try some new features, but that requires lots of dependencies to be installed. 3
shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production. (from Docker documentation) “ “ 4
your application in a document. 2. Docker makes a box that packs your application according to your document, then you can move this box to everywhere you like. 3. Whenever you need to run your application, you only need to open the box again. Docker is a platform that enables you to accomplish above functionalities easily. 5
application in a document(Dockerfile). 2. Docker makes a box(image) that packs your application according to your document, then you can move this box to everywhere(image registry) you like. 3. Whenever you need to run your application, you only need to open the box again.(container) 6
in isolated environments. -> No dependencies conflict anymore 2. You can make sure application environments are the same. (Collaboration is easier too) 3. Container is easily-disposable, you can test your applications quickly without polluting your environment. 7
Monitoring docker stats Reclaim your disk docker container prune -f docker volume prune -f docker image prune -f Orchestration(managing running containers) Kubernetes or Docker Swarm are tools to help you manage containers 14