
doi: 10.1145/3761803
Docker is a widely used developer tool that simplifies building, shipping, and sharing application stacks. Since Docker’s release in 2013, it has seen rapid adoption and is used by a majority of professional software developers. In this article, we (Docker maintainers) explain it from a technical perspective, beginning with its origins on Linux and subsequently how we rebuilt it to support macOS and Windows while remaining just as user friendly. Docker has incorporated a lot of systems research in its goal of becoming an “invisible” developer companion, and we discuss how hypervisors, kernel namespaces and technology from the dialup era have all solved difficult integration problems as the userbase rapidly grew. The Docker project also remains at its heart one of the most successful open source developer communities in the recent era, with a once-monolithic system now split into standardized and well specified components that are independently developed. Today, developer workflows are rapidly evolving with agentic assistance and sensitive datasets, and we discuss how Docker is adapting to support these use cases.
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
