I just get started with docker.

I'm a little confused by the concept of base os and base image.
I'm on mac os, so to use docker locally, I have to install docker machine to create a vm to run docker.

from this doc of docker. For local virtualbox, the default base os is boot2docker, and for remote, the default base os is ubuntu 12.04+.

What confusing me is that I can find an ubuntu image on docker hub. My previous understanding is the docker images are just applications which can be run based on a linux os.

  1. But why there's an image which is a complete os???
    What's happening if I run an ubuntu image on an ubuntu os???

Another question is: docker container will share the same OS kernel, that's why the cost of running a docker container is very low.

  1. which kernel they're sharing?? Is it the kernel of the host OS(base os: boot2docker) or the kernel of the OS image (ubuntu image)???

  2. If they're sharing the host OS's kernel, what it means when I run a ubuntu OS container on top of an ubuntu host OS???

  3. boot2docker is a stipe-down version of linux OS, does it have all the things that a random container needs??? if yes, then why use ubuntu base OS???

  • Installation of Ubuntu in VirtualBox on a Mac is straightforward. Install VirtualBox. Add a new VM Linux / Ubuntu from the Machine / New menu. Download Ubuntu, put that ISO in the VB "drive" and boot the VM...
    – Déjà vu
    Nov 29, 2015 at 6:28

1 Answer 1


For convenience, there are default base operating systems.

  • For the Oracle Virtual Box driver, this base operating system is the boot2docker.iso.
  • For drivers used to connect to cloud providers, the base operating system is Ubuntu 12.04+

Those are two different environments, as I described in "Container as a Service (Caas)":

DockerCon Eu 2015

  • the non-Linux host will use a TinyCore-based BM called boot2docker: in it you can run docker daemon and launch any container based on any image you want (ubuntu or otherwise)
  • the cloud hosts, that is cloud providers, the base operating system is the latest Ubuntu LTS the provider supports. Hence Ubuntu 12.04.
    To use a different base operating system on a remote provider, specify the provider’s image flag and one of its available images. For example, to select a debian-8-x64 image on DigitalOcean you would supply the --digitalocean-image=debian-8-x64 flag.

In all environments, the goal is to provide a Linux kernel recent enough to support docker feature, allowing any docker image to delegate its system calls to the kernel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.