Skip to content

Docker

Build, ship, and run applications in portable containers on any machine.

Self-hostedNot yet verified
Demo online
Apache-2.0

Open the official app on www.docker.com

This tool is hosted by its maintainers. Click below to open www.docker.com in a new tab — it's their official demo.

Browse developer tools →

What's next with Docker?

Choose how you want to get started.

Use it free

Open the official tool or demo — no account needed.

Free

Self-host it

Run the open-source version on your own infrastructure.

Open

What is Docker?

Docker is an open-source platform for developing, shipping, and running applications using containerization technology. It enables developers to package applications with their dependencies into lightweight, portable containers that run consistently across different environments. By abstracting infrastructure details, Docker solves the 'works on my machine' problem, allowing collaboration and deployment. It is widely used by developers, DevOps teams, and enterprises to streamline workflows, improve scalability, and enhance security through features like isolation and governance. Docker's primary purpose is to simplify application development and deployment by standardizing runtime environments, reducing configuration conflicts, and enabling rapid iteration. Docker's impact extends beyond individual development to cloud-native and microservices architectures. Its containerization approach allows applications to be deployed in isolation, ensuring predictable behavior across development, testing, and production stages. The platform supports advanced features like hardened images with security certifications, sandboxing for secure agent execution, and governance tools for policy enforcement. These capabilities address modern challenges such as securing containerized workloads, managing complex dependencies, and ensuring compliance with industry standards like SLSA Level 3.

How it works

Docker is an open-source platform that uses containerization to package applications with their dependencies, ensuring consistent behavior across environments. It abstracts infrastructure complexities, enabling developers to focus on application logic rather than environment configuration. The platform addresses the 'works on my machine' problem by creating isolated runtime environments. These containers are lightweight, share the host OS kernel, and eliminate the need for virtual machines, reducing resource overhead and improving deployment efficiency. Docker provides container runtime through Docker Engine, enabling applications to run in isolated environments. It supports advanced security features like Docker Sandboxes, which use MicroVM isolation for agent execution, locking down network and filesystem access at runtime. Hardened images with SLSA Level 3 certification ensure minimal, signed, and continuously patched containers.

How to use it

  1. 1Install Docker Desktop or Docker Engine based on your OS. 2. Create a Dockerfile defining application dependencies and runtime settings. 3. Build a container image using 'docker build' and push it to a registry. 4. Run containers with 'docker run', specifying parameters like ports or volumes. Practical tips include using Docker Compose for multi-container apps and leveraging Docker Hub for pre-built images.

What it can do

  • container platform

Use cases

Assumptions and limitations

Assumptions

  • source: https://github.com/docker
  • license: Apache-2.0 — free to use
  • privacy: Self-hosted — you control your data

Limitations

  • Learning curve for mastering container orchestration and networking
  • Resource overhead from containerization compared to native applications
  • Platform-specific limitations in Docker Desktop's VMM implementation
  • Dependency on Docker Engine for core functionality
  • Limited real-time debugging capabilities in containerized environments

Understanding the result

Build, ship, and run applications in portable containers on any machine.

Tool details

  • Clearly flagged when a network request is needed.
  • No account, no sign-up, and no tracking of your content.
  • Powered by (Apache-2.0).
Built with
(https://github.com/docker)
License
Apache-2.0
Runs locally
No — requires a network request
Verification
Not yet verified
Input
Query
Output
Text
Open-source source & license

Built with https://github.com/docker. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.

Built with
License
Apache-2.0
View source on GitHub

Open-source project

OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.

References

Frequently asked

What is Docker and how does it differ from virtual machines?

Docker uses containerization to package applications with their dependencies, sharing the host OS kernel while isolating processes. Unlike virtual machines, which require full OS copies, containers are lightweight and start instantly. Docker containers run in isolated environments but share the host kernel, making them more efficient for application deployment compared to VMs.

How does Docker ensure security in containerized environments?

Docker implements security through features like Docker Sandboxes, which use MicroVM isolation for agent execution. Network and filesystem access are locked down at runtime. Hardened images with SLSA Level 3 certification ensure minimal, signed, and continuously patched containers. Governance tools provide policy enforcement, audit logs, and identity-bound controls to prevent unauthorized modifications.

How do I run a simple web application using Docker?

1. Create a Dockerfile with instructions like 'FROM nginx:latest' and 'COPY index.html /usr/share/nginx/html/'. 2. Build the image with 'docker build -t my-web-app .'. 3. Run the container using 'docker run -d -p 80:80 my-web-app'. This will start an NGINX server serving your HTML file on port 80.

How does Docker compare to Kubernetes for container orchestration?

Docker provides container runtime and basic management tools, while Kubernetes is a specialized orchestration platform for scaling and managing containerized applications. Docker integrates with Kubernetes for deployment, but Kubernetes handles advanced features like auto-scaling, load balancing, and service meshes that Docker does not natively support.

How do I troubleshoot 'Cannot connect to Docker daemon' errors?

This error often occurs due to Docker daemon not running or permission issues. Check if Docker Desktop is active, restart the Docker service, or re-login to your system. For Linux, verify the Docker daemon is running with 'systemctl status docker' and ensure your user has permissions via 'sudo usermod -aG docker $USER'.

Spotted something wrong with Docker, or want to maintain it? See how to help.