“Although containers existed long before Docker, it brought a revolution that was already happening to the masses”
Docker is revolutionizing IT — you’re probably hearing this phrase quite often. Still, these questions linger: If we were to look beyond the hype, what’s so disruptive about Docker technology? What are the differences between Docker and a virtual machine? What is hype and where does the real added value lie? We talked with Antonis Kalipetis about all this and more.
Docker manages to insert itself into all our conversations — why? Because it is extremely helpful and everyone loves it. There’s a lot going on in the Docker world (for example, the Docker platform and Moby Project are now integrating support for Kubernetes) but this is not why we’re doing this interview series with Docker Captains.
Don’t miss our Docker Captains interview series
- “Docker doesn’t want to be replaced as the container runtime of choice”
- Docker vs. VM: What’s the difference?
- Solving Docker confusions one by one — Docker Captains share their tricks
- “It is crucial for Docker to be the industry-wide accepted standard”
- Docker Captains speak bluntly: “Containerd is basically the real engine behind Docker”
- “Making containers usable with nice tooling was the only thing missing — Docker provided that”
- “Data persistence is the most misunderstood element by Docker users”
- “I feel like Docker Swarm needs a bit more work to really be usable in production out of the box”
- “Docker has created a new tool-set which has now become the standard for DevOps.”
We’d like to hear more about their love stories with Docker, their likes and dislikes, their battle scars and more. Without further ado, we’d like to introduce Antonis Kalipetis, CTO at SourceLair and Docker Captain.
JAXenter: Can you tell us a little bit about your first contact with Docker? When was it? In what context? Was it love at first sight?
Antonis Kalipetis: My first contact with Docker was back in 2013 – I just dug through our code base at SourceLair to find the first commit – October 15, 2013. At the time, we were using some custom process isolation to give our users a way to run programs within a browser.
With Docker, we could easily give multiple environments, better isolation, real-time interaction with the running process. It was a blast! In brief, we used Docker when it was more or less what containerd is today.
Having said that, it was definitely love at first sight. We invested a lot in Docker and we also started the local Athens meetup.
JAXenter: Docker is revolutionizing IT — that is what we read and hear very often. Do you think this is true? If we were to look beyond the hype, what’s so disruptive about Docker technology?
Antonis Kalipetis: I’d say that Docker brought a revolution that was already happening to the masses. Containers existed long before Docker, but Docker managed to bring the technology to the community in a way that was easy to use and straightforward, making the technology useful.
JAXenter: How is Docker different from a normal virtual machine?
Antonis Kalipetis: Docker nowadays is more of a platform, it’s way more than what it used to be when I started using it so the classic VM vs Docker conversation should be rephrased to VM VS containers (like runC) in my opinion.
Back to the question though, a VM is what it actually says — a hardware machine, virtualized. A container, on the other hand,d is just a process, which using kernel features we can isolate and limit the resources available to it. They’re serving different purposes, there’s no silver bullet.
JAXenter: How do you use Docker in your daily work? Can you describe your personal use cases?
Antonis Kalipetis: I use Docker for all sorts of things, as a tool to create awesome developer tools at SourceLair, in my local development workflow and for deploying production systems for our customers.
JAXenter: What issues do you experience when working with Docker? What are the current challenges?
Antonis Kalipetis: I’d say that at this point, the community has matured enough and most of the problems with and around Docker have been mostly solved. Most of the challenges I face daily, is from people that are not willing to change the way they used to do things before containers. That’s something that needs time though and seeing more and more customers switching to containers is a really positive thing!
JAXenter: Talking about the evolution of the Docker ecosystem: How do you comment on Docker’s decision to donate the containerd runtime to the Open Container Initiative?
Antonis Kalipetis: I personally believe that this is a great decision. Docker has evolved to a platform for managing your datacenter, it’s not just a container runtime anymore. Donating containerd will help the community shape a more secure, universal runtime that everyone can use, while each platform (like Docker, Kubernetes, Mesos, etc) will try to better address the use cases of large deployments.
The community needs a mutually accepted, dumb, core component that will not “vendor-lock” you and at the same time, will be as good as possible, with multiple parties contributing to it.
JAXenter: Is there a special feature you would like to see in one of the next Docker releases?
Antonis Kalipetis: I would love to see better handling of the current cluster state when deploying stacks with Docker Compose in Docker Swarm. This includes things like respecting the current replication of a service.
JAXenter: Could you share one of your favorite tips when using Docker?
Antonis Kalipetis: My tip would be to always use Docker Swarm, or another orchestrator, for deployment, even if you have a single machine “cluster”. The foundations of Swarm are well-thought and works perfectly on just one machine, if you’re not using it because you don’t have a “big enough” cluster, you’re shooting yourself in the foot.