There are three ways to create a new container image on your system. The first one is by interactively building a container that contains all the additions and changes one desires and then committing those changes into a new image. The second and most important way is to use a Dockerfile to describe what's in the new image and then build this image using that Dockerfile as a manifest. Finally, the third way of creating an image is by importing it into the system from a tarball.
Now, let's look at these three ways in detail.