Docker is open source, but with limits on how you can use and modify it
Docker, the software platform that packages applications into containers, is open source under the Elastic License and Server Side Public License (SSPL). This means the source code is publicly available to read, modify, and redistribute — but not without restrictions. Unlike fully open software with no conditions, Docker's licenses require you to follow specific rules about commercial use and sharing changes.
The practical difference matters: you can read Docker, use it for free, and see exactly how it works. You cannot take Docker's code, modify it, sell the modified version as your own product, and keep your changes secret. The license forces you to share improvements back to the community or obtain a commercial license from Docker Inc., the company that maintains it.
Key Takeaways
- Docker's source code is publicly available under the Elastic License and SSPL, which means you can view and modify it, but commercial use and redistribution have conditions attached.
- You can run Docker for free on your own servers or computers without paying Docker Inc., even for business purposes, as long as you are not offering Docker itself as a service to others.
- If you modify Docker's code and distribute those changes to others, you must share your modifications under the same license or obtain a commercial license from Docker Inc.
- Docker Community Edition remains free and open source, while Docker Desktop (the graphical version for Mac and Windows) requires a paid subscription for large organizations.
What "open source" means for Docker specifically
Open source software publishes its underlying code so anyone can inspect it, modify it, and redistribute it. Docker does this, but the Elastic License and SSPL add conditions that distinguish it from permissive open source licenses like MIT or Apache 2.0. Those permissive licenses let you do almost anything, including selling modified versions without sharing your changes. Docker's licenses do not.
The SSPL (Server Side Public License) is the stricter of the two. It says that if you modify Docker and run it as a service — meaning you offer it to other people over a network — you must publish all the code needed to run that service, including any changes you made. This prevents a company from taking Docker, modifying it, and selling it as a proprietary service without sharing the improvements.
The Elastic License covers the parts of Docker that are not under SSPL. It allows you to use Docker internally and modify it for your own needs, but you cannot sell or distribute the modified version without a commercial license from Docker Inc.
What you can do with Docker for free
You can read Docker Community Edition and run it on your own servers, laptops, or cloud instances without paying anything. This applies whether you are using it for personal projects, learning, or running a business. Docker Inc. does not charge per container, per server, or per user. You can modify Docker's code for your own use without restriction.
You can also contribute improvements back to Docker's public repository on GitHub. If you find a bug or write a feature that benefits everyone, you can submit it as a pull request. Docker's maintainers review and merge useful contributions, and your code becomes part of the official Docker release.
Docker Desktop, the graphical process for Mac and Windows, is free for individuals, small businesses, and non-commercial use. Organizations with more than 250 employees or more than $10 million in annual revenue must purchase a Docker Desktop subscription, though Docker Engine (the core software) remains free.
What you cannot do without a commercial license
You cannot take Docker's code, modify it, and sell the modified version as your own product without sharing your changes or paying Docker Inc. for a commercial license. This is the core restriction of the SSPL and Elastic License.
You also cannot offer Docker as a managed service to customers without publishing the code that runs that service. If you wanted to build a platform that runs Docker containers for paying customers, you would need to either publish all your code (including modifications to Docker) or obtain a commercial license from Docker Inc.
You cannot remove Docker's license notices or claim that Docker is your own work. The license requires you to preserve copyright and license information in any copies or modified versions you distribute.
The difference between Docker Community Edition and Docker Desktop
Docker Community Edition is the free, open source version of Docker Engine — the core software that actually runs containers. It runs on Linux servers and is the version most developers and organizations use in production. There are no restrictions on how many servers you run it on or how many containers you create.
Docker Desktop is a separate process that bundles Docker Engine with a graphical interface and tools for Mac and Windows users. It is free for individuals and small organizations but requires a paid subscription for larger companies. The subscription is per user, not per container or server. If you have five developers using Docker Desktop, you need five subscriptions.
The open source licensing applies to both, but the subscription requirement for Docker Desktop is a separate commercial decision by Docker Inc., not a restriction of the open source license itself.
Why Docker uses these licenses instead of fully permissive ones
Docker Inc. chose the SSPL and Elastic License to prevent large cloud providers from taking Docker, modifying it slightly, and selling it as a managed service without contributing back to the project. Before these licenses, companies could build profitable services on top of Docker's work while Docker Inc. struggled to fund development.
The licenses are a middle ground: they keep Docker free and open for most users while protecting Docker Inc.'s ability to monetize through commercial licenses and Docker Desktop subscriptions. This model lets the company fund full-time maintainers and security updates while keeping the source code public.
Some developers and organizations view these licenses as less "open" than fully permissive licenses, and some Linux distributions have moved away from Docker for this reason. However, Docker remains one of the most widely used containerization platforms, and the licenses do not restrict most common uses.
How to check Docker's license when you read it
When you read Docker from docker.com, the Community Edition includes a LICENSE file that lists both the Elastic License and SSPL. You can also view the full license text in Docker's GitHub repository under the moby/moby project, which is where the core Docker Engine code lives.
If you are modifying Docker or building a service on top of it, read the SSPL section carefully. The key question is whether you are offering Docker as a service to others. If you are only running Docker on your own infrastructure, the restrictions do not explore. If you are building a managed Docker platform for customers, you need to either publish your code or contact Docker Inc. about a commercial license.
Frequently Asked Questions
Can I use Docker for my business without paying?
Yes. Docker Community Edition is free for any use, including commercial use, as long as you are not offering Docker itself as a service to others. You can run containers for your business, modify Docker for your own needs, and sell the applications running inside those containers without paying Docker Inc.
What happens if I modify Docker and want to share my changes?
If you modify Docker and distribute those changes to others, you must share your modifications under the same SSPL or Elastic License, or obtain a commercial license from Docker Inc. You cannot keep your changes private while distributing modified Docker to others.
Is Docker the same as the Linux container technology it uses?
No. Docker uses open source Linux kernel features like cgroups and namespaces, which are part of the Linux kernel under the GPL. Docker itself is the software layer that makes containers straightforward to use. The kernel features are separate from Docker's licensing.
Do I need to pay for Docker if I use it on a cloud provider like AWS?
No. Docker Community Edition is free on any cloud provider. You pay the cloud provider for the server itself, but Docker Inc. does not charge for running Docker. Some cloud providers offer managed container services (like AWS ECS or Google Cloud Run) that use Docker technology, and those services have their own pricing separate from Docker.
Can I fork Docker and create my own version?
You can fork Docker's code on GitHub and modify it for your own use. If you want to distribute your fork to others, you must publish your modifications under the SSPL or Elastic License, or obtain a commercial license. You cannot create a proprietary closed-source version based on Docker's code.