80.1K
60.1K
+ 1
3.8K

What is Docker?

The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application ‚ÄĒ from legacy to what comes next ‚ÄĒ and securely run them anywhere
Docker is a tool in the Virtual Machine Platforms & Containers category of a tech stack.
Docker is an open source tool with 58.9K GitHub stars and 17K GitHub forks. Here’s a link to Docker's open source repository on GitHub

Who uses Docker?

Companies
6749 companies reportedly use Docker in their tech stacks, including Pinterest, Spotify, and Twitter.

Developers
70481 developers on StackShare have stated that they use Docker.

Docker Integrations

Java, Kubernetes, Bitbucket, VirtualBox, and Ansible are some of the popular tools that integrate with Docker. Here's a list of all 286 tools that integrate with Docker.
Public Decisions about Docker

Here are some stack decisions, common use cases and reviews by companies and developers who chose Docker in their tech stack.

Joshua Dean K√ľpper
CEO at Scrayos UG (haftungsbeschränkt) · | 1 upvotes · 1.9K views

Docker is used as a key part of our new type of infrastructure that relies exclusively on containers. We prefer docker since it offers us all we need in a very stable and battle-proven manner.

See more

I have got a small radio service running on Node.js. Front end is written with React and packed with Webpack . I use Docker for my #DeploymentWorkflow along with Docker Swarm and GitLab CI on a single Google Compute Engine instance, which is also a runner itself. Pretty unscalable decision but it works great for tiny projects. The project is available on https://fridgefm.com

See more
Praveen Mooli
Engineering Manager at Taylor and Francis · | 13 upvotes · 1.5M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Shared insights
on
Docker
at

We are planning to choose Docker since it will allow us to build and install libraries and dependencies with ease. Its extensive use in the world will be helpful to provide us with useful discussion boards. This will be the first time any member of the dev team will be using Docker as part of their application. Given the limited readings, we have been able to do about it in the time we had, we a really excited to get to work with it. It seems to have a lot of potential that we would like to explore as a team. Another reason is that our dev team currently only has access to Windows machines and we want our application to be system agnostic. Using Docker will also help us limit the number of CI minutes our application requires.

See more
Joshua Dean K√ľpper
CEO at Scrayos UG (haftungsbeschränkt) · | 5 upvotes · 18.1K views

We use GraphQL for the communication between our Minecraft-Proxies/Load-Balancers and our global Minecraft-Orchestration-Service JCOverseer.

This connection proved to be especially challenging, as there were so many available options and very specific requirements and we tried our hardest to put as little complexity into this interface as possible.

Initially we considered designing our very own Netty based Packet-Protocol. While the performance of this approach probably would've been noteworthy, we would have had to write a lot of packets as the individual payloads would differ a lot and for the protocol specification a new project would've been needed, so we scrapped that idea.

Our second idea was to use a combination of Redis Key/Value store (in particular the ability to write whole, complex sets as the values of keys) for existing data, Redis Pub-Sub for the synchronization of new/changed/deleted data and a Vert.x based REST API for the mutation requests of the clients. While this would certainly have been possible, we decided against it, as redis offers no real other data types than strings and typing was important to us.

So we finally settled for GraphQL as it would allow us to define dynamic queries and mutations and additionally has subscriptions in store, so we would only need one component instead of three separate. The proxies register as subscribers to the server changes channel and fetch the current data set in advance. If they need to request changes, this is done through a mutation in GraphQL aswell.

The status of the invidiual servers is fetched through Docker healthchecks and a Docker client in the orchestration service, that subscribes to changed HEALTHINESS values in docker. If a service becomes unhealthy it is unregistered and synchronized through GraphQL. The healthcheck is comparable to a ping packet that expects a response in a given time frame.

See more
Mohammad Hossein Amri
Chief Technology Officer at Axceligent Solutions · | 3 upvotes · 94.2K views
Shared insights
on
Docker

I'm open to anything. just want something that break less and doesn't need me to pay for it, and can be hosted on Docker. our scripting language is powershell core. so it's better to support it. also we are building dotnet core in our pipeline, so if they have anything related that helps with the CI would be nice.

See more

Blog Posts

3
523
Jul 9, 2019 at 7:22PM
https://img.stackshare.io/stack/375258/default_9d75ea1730b0b5d6944338985993a69532b2dd84.jpg logo

Blue Medora

11
1581
30
25855
Jun 26, 2018 at 3:26AM
https://img.stackshare.io/stack/325466/default_06cecdd7cb3f11903cc5a8af0677b9b393889e67.png logo

Twilio SendGrid

11
8866

Docker's Features

  • Integrated developer tools
  • open, portable images
  • shareable, reusable apps
  • framework-aware builds
  • standardized templates
  • multi-environment support
  • remote registry management
  • simple setup for Docker and Kubernetes
  • certified Kubernetes
  • application templates
  • enterprise controls
  • secure software supply chain
  • industry-leading container runtime
  • image scanning
  • access controls
  • image signing
  • caching and mirroring
  • image lifecycle
  • policy-based image promotion

Docker Alternatives & Comparisons

What are some alternatives to Docker?
LXC
LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers.
rkt
Rocket is a cli for running App Containers. The goal of rocket is to be composable, secure, and fast.
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
Cloud Foundry
Cloud Foundry is an open platform as a service (PaaS) that provides a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications.
Vagrant
Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.
See all alternatives

Docker's Followers
60107 developers follow Docker to keep up with related blogs and decisions.