Unified Docker Daemon Managing Multiple Driver Instances
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing multiple types of containers with a single container engine increases running overheads due to the need for different driver instances and daemons, limiting flexibility and efficiency.
Innovation Solution
A method and apparatus that allow a single Docker daemon to manage multiple driver instances for different types of containers, enabling access and execution of various containers using a unified Docker daemon and API, decoupling the execution driver and daemon into independent processes for improved maintenance and flexibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple driver instances for different container types are managed by different programs, then each driver instance can be properly configured and maintained, but the running overheads of the container engine increase
Solution Approach 1:
The patent merges multiple driver instances for different container types into a single container engine process. The container engine is modified to load and manage multiple driver instances (e.g., Native/runc, LXC, runv) internally, allowing a single daemon process to handle diverse container types without requiring separate daemons for each driver type.
Solution Approach 2:
The container engine is transformed into a universal platform that can manage multiple types of containers through a single interface. The engine implements a unified driver management mechanism that allows it to dynamically select and switch between different driver instances based on container type requirements, making the single engine multi-functional.
2Use of energy by stationary object
If a single Docker daemon manages multiple driver instances, then running overheads are reduced, but the complexity of driver selection and management increases
Solution Approach 1:
The container engine performs preliminary actions by pre-loading and initializing multiple driver instances during startup. Driver instances are registered and made available in advance, allowing the engine to quickly select the appropriate driver when a container creation request arrives, rather than dynamically discovering or loading drivers at runtime.
Solution Approach 2:
The patent introduces an intermediary driver management layer within the container engine that sits between the API and the various driver instances. This intermediary layer handles driver selection, configuration, and coordination, abstracting the complexity from the rest of the system and providing a unified interface for managing diverse container types.
3Reliability
If different container types require different daemons, then each container type can be optimized for its specific requirements, but the ease of operation decreases
Solution Approach 1:
The container engine implements a universal architecture that can operate with multiple driver instances of different types (Linux containers, container virtual machines, etc.). A single daemon process provides unified management capabilities for all container types, eliminating the need for users to manually start and coordinate multiple specialized daemons while preserving the optimization benefits of type-specific drivers.
Data Source
AI summary
This application discloses a container access method and apparatus. The method includes: receiving a container access request, which is used to request to access a target container; selecting a driver instance corresponding to the target container from multiple currently-running driver instances, where different driver instances in the multiple driver instances are used to drive different types of containers, and the multiple driver instances are managed by using a same program; and sending the container access request to the selected driver instance. In this solution, one program manages driver instances that are used to drive different types of containers, so that a user can access multiple containers of different types by using one program. This reduces running overheads of a program that manages multiple driver instances in a container engine.


