I have spent a few days trying to “really” understand docker.
I have done the tutorials and had a look through docker-hub etc.
I am pretty confident that I can create images / run containers, create and use a Dockerfile, too.
But one thing I am not getting is the mandatory requirements of an image / container.
I am not sure if I am just not reading something correctly - or if it actually isn’t mentioned - and thus there could be a documentation update to be had in all this;
Let me give you two parts - what I understand - what I am trying to do;
You have a host OS - let’s say Fedora 24.
Unlike VMWare - that needs to utilise a Full OS install for the HOST and the GUEST - wasting resources, docker doesn’t. In the tutorials - the diagrams do not show any OS being required “in” the container. they just shopw the container “on top” of the Host OS.
So when creating an image;
Do I have to first load an OS as my base image?
Let’s assume that I want a container for my IDE. So I can preconfigure it - install the prerequisites etc - have it a nice tidy box and then share it around my team - so we all have the same tools / set up in the same way.
My container needs the Java 8 JDK, eclipse, Subversion and a few others.
I can manually load them all of these - and subsequently can script them into a Dockerfile, too.
I can mount a “workspace” volume from the Host through the container etc.
What I am just not getting is;
(again via the tutorials / all the examples I have found on the “interweb”)
There seems to always be a;
FROM “insert favourite Linux flavour here”
Why is this needed? if the container is using the Host OS?
and if it is needed - (which it seems to be)…
Then I think it needs to be a little clearer, discreetly explained in the documentation,
the self-paced tutorials and the diagrams, too.
Eg. Do the guest and Host OSs need to match (it doesn’t seem like they do)
Does it make sense to use the “smallest / lightest” host or guest (or both) OS?
As always - thanks!