This is not the best analogy, but I liken Docker to a high level language. I am not one of those hackers that started programming when I was a fetus, nor did I write my own LISP before I could walk. I started off with Basic in the early 90s (at the ripe old age of 17). I got frustrated with some speed and moved to C. I got frustrated again and moved to Assembly (as an aside I then did my first network enabled program and realized I could write in Basic and it would still be fast enough).
How does this relate to Docker? I knew nothing about containers and was first introduced to them by Docker. So I started off using Docker seeing what I could do with it. When I got frustrated, I started looking at the core components of Docker which lead me to lxc.
So yeah - it has bugs. But it is opening up a "whole new world" to some people.
I like this: Using LXC directly is like using a (pointer, length) struct in C. Using Docker is like using an array-slice in Go. They're not that far apart, but they're on different levels of abstraction, and come with different guarantees (even if those guarantees might not, in practice, be enforced yet.)
Comments
This is not the best analogy, but I liken Docker to a high level language. I am not one of those hackers that started programming when I was a fetus, nor did I write my own LISP before I could walk. I started off with Basic in the early 90s (at the ripe old age of 17). I got frustrated with some speed and moved to C. I got frustrated again and moved to Assembly (as an aside I then did my first network enabled program and realized I could write in Basic and it would still be fast enough).
How does this relate to Docker? I knew nothing about containers and was first introduced to them by Docker. So I started off using Docker seeing what I could do with it. When I got frustrated, I started looking at the core components of Docker which lead me to lxc.
So yeah - it has bugs. But it is opening up a "whole new world" to some people.
I like this: Using LXC directly is like using a (pointer, length) struct in C. Using Docker is like using an array-slice in Go. They're not that far apart, but they're on different levels of abstraction, and come with different guarantees (even if those guarantees might not, in practice, be enforced yet.)