22 Red Hat OpenShift and IBM Cloud Paks on IBM Power Systems: Volume 1
2.3.3  Docker as a container manager
Docker is the virtualized platform to host containerized applications, starting from software 
development until execution. Docker engine is a client/server application that features the 
following components:
/SM590000Daemon: These processes run in the background and are not attached to any terminal 
session. Mostly, these processes are designed to receive instructions from other 
applications to perform specific tasks. Daemons plays a key role to manage Docker 
objects, such as images, containers, networks, and volumes.
/SM590000REST API: These user interfaces are used in code to send instructions to Daemon jobs. 
/SM590000CLI: These commands are run in terminal sessions to send instructions to Daemon. 
Script-based batch jobs are created by using CLI. 
Docker Containers optimize software development process with following objectives:
/SM590000Streamline the development process by using standardized environments of local 
containers, which are highly compatible for CI/CD workflow. Automation plays a significant 
role to build and run test scenarios.
/SM590000Docker containers are lightweight in nature, which makes it highly portable to almost every 
possible environment from workstation to virtualized environment to cloud. This feature 
makes it highly scalable based on user requirements.
/SM590000Docker requires minimal resources so that multiple Docker containers can be hosted on 
the same hardware for optimal performance and resource usage.
2.3.4  Docker architecture
This section describes the Docker architecture, as shown in Figure 2-10. 
Figure 2-10   Docker architecture