Docker
Build, ship, and run applications in portable containers on any machine.
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.
Self-host it
Run the open-source version on your own infrastructure.
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
- 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
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
Open-source project
OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.
References
- / — GitHub Repository
Upstream project · GitHub
- Apache-2.0 License
Upstream project
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'.