- Docker is an open platform for developing, shipping, and running applications.
- Combines a lightweight container virtualization platform with workflows and tooling that help manage and deploy applications.
- Containerization allows for encapsulation of app specific configuration concerns.
- Encapsulation allows for decoupling of dependencies, so each app can depend on different versions.
- Simpler dependency management results in a low friction IT environment, less things to learn and break.
- Low friction allows to ship code faster, test faster, deploy faster, shortening the cycle between writing code and running code.
- Faster code → prod cycle means business value can be demonstrated quicker resulting in a positive feedback loop that inherently reduces waste when developing new features.
- Code support is cheaper, since containers can be docked/undocked to/from developer machine in seconds.
- Containers are small, inherently more secure due to reduced attack surface and sandboxing.
- Containers are flexible, they can be individually scaled to respond to changes in demand in real-time.
- Containers are accessible, easily and securely stored and shared in an on-premise Docker registry.
- Using Docker Enterprise tools, containers can be deployed over a collection of servers, or a datacenter, resulting in a private cloud computing environment.
- A private cloud means the infrastructure is decoupled from its individual hardware components, resulting in a resilient, high performance and secure system.
- A private cloud saves money in optimizing utilization of existing resources and lowering op/maintenance costs dramatically.
docker build . -t [user]/[image_name]
docker run -p [port]:[port] [user]/[image_name]
docker push [user]/[image_name]
docker pull [user]/[image_name]
docker run -p [port]:[port] [user]/[image_name]
docker start [short_name]
docker stop [short_name]
docker ps
docker ps -a