Improve the README for consumers.

This commit is contained in:
James Westby
2016-10-18 20:50:15 +01:00
committed by James Westby
parent 47e1cb91ef
commit cfbba1ecc6
+49 -32
View File
@@ -1,18 +1,20 @@
minideb
=======
A small container image with apt available.
A small base image designed for use in containers. The image
is based on glibc for wide compatibility, and has apt for
access to a large number of packages. The image is based
on Debian, with some things that aren't required in containers
removed:
We want to have the smallest container image possible with
apt available. Small images are great, but the power of
apt is hard to live without.
* Some packages that aren't often used in containers
(hardware related, init systems etc.)
* Some files that aren't usually required (docs, man pages,
locales, caches)
These images are Debian-based, but they are not Debian, as
they remove some `Essential` packages that are not needed in
most containers (e.g. init). This does mean that while apt
is available, with the whole Debian archive, some packages
will not work correctly without also installing a missing
`Essential` package.
This image aims to strike a good balance between having
small images, and having many quality packages available
for easy integration.
These images also include an `install_packages` command
that you can use instead of apt. This does two things:
@@ -20,9 +22,46 @@ that you can use instead of apt. This does two things:
1. Install the named packages, skipping prompts etc.
2. Clean up the apt metadata afterwards to keep the image small.
e.g.
$ install_packages apache2 memcached
Compatibility
-------------
The image points to the Debian archive, so you are free to
install packages from there that you need. However because
some `Essential` packages have been removed they may not
always install or work correctly.
In those cases you can figure out which package is needed
and manually specify to install it along with your desired
packages.
Docker
------
You can use the image directly, e.g.
$ docker run --rm -it minideb:latest
There are tags for the different Debian releases.
$ docker run --rm -it minideb:jessie
The images are built daily and have the security release enabled,
so will contain any security updates released more than 24 hours
ago.
You can also use the images as a base for your own `Dockerfile`:
FROM minideb:jessie
Building
--------
You can build an image yourself if you wish:
- Install debootstrap and debian-archive-keyring.
- sudo ./buildall
@@ -34,25 +73,3 @@ To test the resulting image:
- docker import -t minideb:jessie jessie.tar
- ./test minideb:jessie
Nami
----
Nami from Bitnami allows you to install Bitnami-maintained packages.
The `namibase` directory contains `Dockerfile`s for building images
containing `nami` based on the minideb images. They will also be build
by the `buildall` script. You will first have to download the
`nami-linux-x64.tar.gz` tarball in to the `namibase` directory, but
unfortunately there is no public source for those tarballs currently.
TODO
----
- Look at whether the process produces the same bits given the same inputs
- It does not. `/etc/shadow` and `/etc/group` change, as well as `/var/cache/ldconfig/aux-cache`.
- Can we use a custom debootstrap script to avoid removing packages?
- Yes, and allows to define a package set to include, rather than a list of packages to remove.
- Requires to install some packages (e.g. mount) for running the process, that we would still
want to remove afterwards.
- `install_packages` to also run the docs/locales/etc. cleanups