mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
9f1c69ca7b
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
65 lines
2.2 KiB
ReStructuredText
65 lines
2.2 KiB
ReStructuredText
:title: Create a Base Image
|
|
:description: How to create base images
|
|
:keywords: Examples, Usage, base image, docker, documentation, examples
|
|
|
|
.. _base_image_creation:
|
|
|
|
Create a Base Image
|
|
===================
|
|
|
|
So you want to create your own :ref:`base_image_def`? Great!
|
|
|
|
The specific process will depend heavily on the Linux distribution you
|
|
want to package. We have some examples below, and you are encouraged
|
|
to submit pull requests to contribute new ones.
|
|
|
|
Create a full image using tar
|
|
.............................
|
|
|
|
In general, you'll want to start with a working machine that is
|
|
running the distribution you'd like to package as a base image, though
|
|
that is not required for some tools like Debian's `Debootstrap
|
|
<https://wiki.debian.org/Debootstrap>`_, which you can also use to
|
|
build Ubuntu images.
|
|
|
|
It can be as simple as this to create an Ubuntu base image::
|
|
|
|
$ sudo debootstrap raring raring > /dev/null
|
|
$ sudo tar -C raring -c . | sudo docker import - raring
|
|
a29c15f1bf7a
|
|
$ sudo docker run raring cat /etc/lsb-release
|
|
DISTRIB_ID=Ubuntu
|
|
DISTRIB_RELEASE=13.04
|
|
DISTRIB_CODENAME=raring
|
|
DISTRIB_DESCRIPTION="Ubuntu 13.04"
|
|
|
|
There are more example scripts for creating base images in the
|
|
Docker GitHub Repo:
|
|
|
|
* `BusyBox <https://github.com/dotcloud/docker/blob/master/contrib/mkimage-busybox.sh>`_
|
|
* CentOS / Scientific Linux CERN (SLC) `on Debian/Ubuntu
|
|
<https://github.com/dotcloud/docker/blob/master/contrib/mkimage-rinse.sh>`_
|
|
or
|
|
`on CentOS/RHEL/SLC/etc.
|
|
<https://github.com/dotcloud/docker/blob/master/contrib/mkimage-yum.sh>`_
|
|
* `Debian / Ubuntu
|
|
<https://github.com/dotcloud/docker/blob/master/contrib/mkimage-debootstrap.sh>`_
|
|
|
|
|
|
Creating a simple base image using ``scratch``
|
|
..............................................
|
|
|
|
There is a special repository in the Docker registry called ``scratch``, which
|
|
was created using an empty tar file::
|
|
|
|
$ tar cv --files-from /dev/null | docker import - scratch
|
|
|
|
which you can ``docker pull``. You can then use that image to base your new
|
|
minimal containers ``FROM``::
|
|
|
|
FROM scratch
|
|
ADD true-asm /true
|
|
CMD ["/true"]
|
|
|
|
The Dockerfile above is from extremely minimal image -
|
|
`tianon/true <https://github.com/tianon/dockerfiles/tree/master/true>`_.
|