Unified Docker Daemon Managing Multiple Driver Instances

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedriver instance managementVSAvoidrunning overheads of container engine
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improverunning overheads of Docker daemonVSAvoiddriver instance selection mechanism
Core Design Contradiction:
Use of energy by stationary objectVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvecontainer type optimizationVSAvoidcontainer engine operation
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11321109B2Container engine for selecting driver based on container metadata
Publication Date: 2022.05.03 HUAWEI TECH CO LTD
  • US11321109B2 patent drawing
  • US11321109B2 patent drawing
  • US11321109B2 patent drawing

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.