Hi All,
Per discussion in the #fedora-cloud meeting last Friday I would like to start a thread about the names of the Docker and Atomic deliverables for F21.
I know of at least a few cases where there has been confusion regarding what deliverable has been the subject of a conversation on IRC as a result of the current terminology. I've seen the docker and atomic referred to as:
Docker Image Atomic Image Docker Host Image etc...
It seems like the one that sparks the most confusion is "Docker Image". Usually when I see "Image" I think a VM bootable image (i.e. virtualization, not containers/Docker). A progression from that misunderstanding could lead one to think that "Docker Image" is the VM disk image I can use to boot a host that will run the Docker daemon and thus run containers.
I think it would be nice to help ourselves and our users along by separating the terminology a bit such that it is hard to confuse what is a VM disk image vs. what is an image for use with Docker.
Here is a first stab at trying to make things clearer:
Docker Container Image - base container image - can be used with docker Atomic Image - minimal OS, Atomic updates, aka 'Docker Host'
In a nutshell, it would be great if we added "Container" to references we make to the container image (in conversation and docs).
Thoughts?
Dusty
On 09/07/2014 11:22 PM, Dusty Mabe wrote:
Hi All,
Per discussion in the #fedora-cloud meeting last Friday I would like to start a thread about the names of the Docker and Atomic deliverables for F21.
I know of at least a few cases where there has been confusion regarding what deliverable has been the subject of a conversation on IRC as a result of the current terminology. I've seen the docker and atomic referred to as:
Docker Image Atomic Image Docker Host Image etc...It seems like the one that sparks the most confusion is "Docker Image". Usually when I see "Image" I think a VM bootable image (i.e. virtualization, not containers/Docker). A progression from that misunderstanding could lead one to think that "Docker Image" is the VM disk image I can use to boot a host that will run the Docker daemon and thus run containers.
I think it would be nice to help ourselves and our users along by separating the terminology a bit such that it is hard to confuse what is a VM disk image vs. what is an image for use with Docker.
Here is a first stab at trying to make things clearer:
Docker Container Image - base container image - can be used with docker Atomic Image - minimal OS, Atomic updates, aka 'Docker Host'
I've always thought container and image were two distinct things.
Here's my take:
The image is the disk that is being used. The container is the Operating System construct. The Two combinded are the instance.
"My instance is a Fedora 21 base image running inside a KVM container."
"My instance is a Docker image of JBoss with RHQ in it running in a container on CentOS 7"
Now...I realize that Docker does not see things this way. Docker containers are trying to be like a CONEX (http://en.wikipedia.org/wiki/Intermodal_container) that gets stuck on the back of a train, a long haul truck, or a Maersk Oceanic Cargo Ship. I think this acutally confuses things myself.
In a nutshell, it would be great if we added "Container" to references we make to the container image (in conversation and docs).
Thoughts?
Dusty _______________________________________________ cloud mailing list cloud@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/cloud Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
On Mon, Sep 08, 2014 at 09:28:20AM -0400, Adam Young wrote:
On 09/07/2014 11:22 PM, Dusty Mabe wrote:
Hi All,
Per discussion in the #fedora-cloud meeting last Friday I would like to start a thread about the names of the Docker and Atomic deliverables for F21.
I know of at least a few cases where there has been confusion regarding what deliverable has been the subject of a conversation on IRC as a result of the current terminology. I've seen the docker and atomic referred to as:
Docker Image Atomic Image Docker Host Image etc...It seems like the one that sparks the most confusion is "Docker Image". Usually when I see "Image" I think a VM bootable image (i.e. virtualization, not containers/Docker). A progression from that misunderstanding could lead one to think that "Docker Image" is the VM disk image I can use to boot a host that will run the Docker daemon and thus run containers.
I think it would be nice to help ourselves and our users along by separating the terminology a bit such that it is hard to confuse what is a VM disk image vs. what is an image for use with Docker.
Here is a first stab at trying to make things clearer:
Docker Container Image - base container image - can be used with docker Atomic Image - minimal OS, Atomic updates, aka 'Docker Host'I've always thought container and image were two distinct things.
Image and container are two distinct things. The container image is basically an image that contains a filesystem for use with containers (no kernel, etc..).
A container is an isolated process that runs that uses the container image as the root filesystem.
Here's my take:
The image is the disk that is being used. The container is the Operating System construct. The Two combinded are the instance.
"My instance is a Fedora 21 base image running inside a KVM container."
"My instance is a Docker image of JBoss with RHQ in it running in a container on CentOS 7"
I think you are mixing virtualization and containerization too much. Let me try to see if I can use similar statements in my own terms:
"My virtual machine instance is a Fedora 21 base image running on a KVM hypervisor"
"My container is running process X that is using a docker container image of JBoss with RHQ in it. The Docker daemon managing my container is running on a CentOS 7 host."
Hopefully my take on this isn't wrong. Does this help at all?
Dusty
On 09/08/2014 10:17 AM, Dusty Mabe wrote:
On Mon, Sep 08, 2014 at 09:28:20AM -0400, Adam Young wrote:
On 09/07/2014 11:22 PM, Dusty Mabe wrote:
Hi All,
Per discussion in the #fedora-cloud meeting last Friday I would like to start a thread about the names of the Docker and Atomic deliverables for F21.
I know of at least a few cases where there has been confusion regarding what deliverable has been the subject of a conversation on IRC as a result of the current terminology. I've seen the docker and atomic referred to as:
Docker Image Atomic Image Docker Host Image etc...It seems like the one that sparks the most confusion is "Docker Image". Usually when I see "Image" I think a VM bootable image (i.e. virtualization, not containers/Docker). A progression from that misunderstanding could lead one to think that "Docker Image" is the VM disk image I can use to boot a host that will run the Docker daemon and thus run containers.
I think it would be nice to help ourselves and our users along by separating the terminology a bit such that it is hard to confuse what is a VM disk image vs. what is an image for use with Docker.
Here is a first stab at trying to make things clearer:
Docker Container Image - base container image - can be used with docker Atomic Image - minimal OS, Atomic updates, aka 'Docker Host'I've always thought container and image were two distinct things.
Image and container are two distinct things. The container image is basically an image that contains a filesystem for use with containers (no kernel, etc..).
Yeah. I hate this use of container. The Kernel is irrelevant.
In both the Container and VM worlds there is the specification for what the container/machine should look like when it is activated. But these are not the container.
Its like calling a Zip file or RPM a container because it contains the files that will become the VM...strictly speaking correct, but IMHO meaningless.
A container is an isolated process that runs that uses the container image as the root filesystem.
I'd prefer "A container is an isolated process that runs that uses the image as the root filesystem."
(even then I would prefer that "image" be slightly more specified to distinguish it from a picture; to the rest of the world, an image is a jpg/gif/png/bmp, not a Filesystem snapshot. But them, I am unbearable pedantic.)
Here's my take:
The image is the disk that is being used. The container is the Operating System construct. The Two combinded are the instance.
"My instance is a Fedora 21 base image running inside a KVM container."
"My instance is a Docker image of JBoss with RHQ in it running in a container on CentOS 7"
I think you are mixing virtualization and containerization too much. Let me try to see if I can use similar statements in my own terms:
Lets not try to separate the verbage of these two things. Containers are degenerate cases. Put another way, Virtual machines are extreme containers....or something. The same abstractions apply to each, with additional layers necessary for Virtual Machines. For the sake of poor sysadmins everywhere, lets try to give them sane, simple language that covers both.
"My virtual machine instance is a Fedora 21 base image running on a KVM hypervisor"
"My container is running process X that is using a docker container image of JBoss with RHQ in it. The Docker daemon managing my container is running on a CentOS 7 host."
See, I find that second one both too verbose and too confusing without conveying any more accurate information.
"I'm running JBoss from a docker image in a container on CentOS 7" is just as clear and accurate.
Thanks for starting this discussion, BTW. I think the verbage around this has confused many people for a while.
Hopefully my take on this isn't wrong. Does this help at all?
Dusty _______________________________________________ cloud mailing list cloud@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/cloud Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
On Sun, Sep 7, 2014, at 11:22 PM, Dusty Mabe wrote:
In a nutshell, it would be great if we added "Container" to references we make to the container image (in conversation and docs).
I tend to say "Docker Base Image" - that's the terminology upstream Docker uses: https://docs.docker.com/articles/baseimages/
On Mon, Sep 08, 2014 at 09:29:12AM -0400, Colin Walters wrote:
On Sun, Sep 7, 2014, at 11:22 PM, Dusty Mabe wrote:
In a nutshell, it would be great if we added "Container" to references we make to the container image (in conversation and docs).
I tend to say "Docker Base Image" - that's the terminology upstream Docker uses: https://docs.docker.com/articles/baseimages/
I think in the context of Docker, i.e. when you already know you are talking about the Docker daemon and Docker containers, then "Docker Base Image" is clear enough.
I think when you don't have that context to begin with and you hear "Docker Base Image" then it is not so clear. I'm fine with incorporating their terminology so we can be more clear though:
Docker Container Base Image ?
Unfortunately we have to balance clarity with convenience. The longer it gets the more people won't like it so that is something to consider.
Dusty