DockerGen: A Knowledge Graph based Approach for Software Containerization

Wei Chen,Hongjie Ye,Guoquan Wu,Jiahong Zhou,Jun Wei,Jiaxin Zhu
DOI: https://doi.org/10.1109/COMPSAC51774.2021.00133
2021-07-01
Abstract:Docker is the de-facto container technology for software system deployment and delivery. A Dockerfile specifies how to containerize a system into a Docker image. However, creating a Dockerfile is not trivial since resolving the dependencies (e.g., third-party libraries) of diverse software requires comprehensive domain knowledge. In this paper, we propose DockerGen to containerize software packages automatically. DockerGen constructs a knowledge graph containing rich knowledge of building Docker images by analyzing nearly 220 thousand Dockerfiles. DockerGen exploits the knowledge graph to containerize the target software by creating a Dockerfile specifying the base image, dependencies, and the operation workflow. We evaluate DockerGen on 100 software packages of various categories. DockerGen achieves a 73% build success rate and a 59% configuration success rate. The experimental result indicates it is viable to automate software containerization based on a domain knowledge graph.
Computer Science
What problem does this paper attempt to address?