Official Repository

Last pushed: 14 days ago
Short Description
Debian is a Linux distribution that's composed entirely of free and open-source software.
Full Description

Supported tags and respective Dockerfile links

Quick reference

What is Debian?

Debian is an operating system which is composed primarily of free and open-source software, most of which is under the GNU General Public License, and developed by a group of individuals known as the Debian project. Debian is one of the most popular Linux distributions for personal computers and network servers, and has been used as a base for several other Linux distributions.

wikipedia.org/wiki/Debian

About this image

The debian:latest tag will always point the latest stable release (which is, at the time of this writing, debian:jessie). Stable releases are also tagged with their version (ie, debian:8 is an alias for debian:jessie, debian:7 is an alias for debian:wheezy, etc).

The rolling tags (debian:stable, debian:testing, etc) use the rolling suite names in their /etc/apt/sources.list file (ie, deb http://deb.debian.org/debian testing main).

The mirror of choice for these images is the deb.debian.org CDN pointer/redirector so that it's as reliable as possible for the largest subset of users (and is also the default mirror for debootstrap as of 2016-10-20). See the deb.debian.org homepage for more information.

If you find yourself needing a Debian release which is EOL (and thus only available from archive.debian.org), you should check out the debian/eol image, which includes tags for Debian releases as far back as Potato (Debian 2.2), the first release to fully utilize APT.

Locales

Given that it is a faithful "minbase" install of Debian, this image only includes the C, C.UTF-8, and POSIX locales by default. For most uses requiring a UTF-8 locale, C.UTF-8 is likely sufficient (-e LANG=C.UTF-8 or ENV LANG C.UTF-8).

For uses where that is not sufficient, other locales can be installed/generated via the locales package. PostgreSQL has a good example of doing so, copied below:

RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
    && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8

<suite>-slim variants

These tags are an experiment in providing a slimmer base (removing some extra files that are normally not necessary within containers, such as man pages and documentation), and are definitely subject to change.

See the discussion in tianon/docker-brew-debian#48 for some notes/details regarding the specifics of the implementation.

How It's Made

If you are curious about what goes into creating this image, please see contrib/mkimage.sh in github.com/docker/docker (and contrib/mkimage/debootstrap in the same repo). Those are invoked by update.sh in the image repository, which provides some additional functionality such as generating <suite>-backports contents and repacking the generated tarballs for the <suite>-slim variants.

Additional interesting information is provided in files on the relevant dist branch of the image repository, namely the exact command used to build (SUITE/build-command.txt), a full log of the build itself (SUITE/build.log), and the "build manifest" (SUITE/build.manifest, which lists the version numbers of all the packages included in the rootfs tarball).

Docker Pull Command

Comments (28)
ntwrkguru
4 months ago

@phillo Interesting approach. Usually, I would expect the image to be what is distributed. To answer your question though, you can add whatever packages are needed in your Dockerfile. This is just a base image.

jodumont
9 months ago

@ikit maybe because your dockerhost is a ubuntu ;)

phillo
9 months ago

The list of packages installed is very small. It's actually missing the less package, which is surprising, because that appears to be included in the base system (at important priority). Am I mistaken about less being in the base system, or is this image some subset of base?

And another, related question: are there other, larger debian images (like desktop) either in existence, or planned? I'm testing software for end users, which I'll distribute to them directly (as an AppImage), and I know that the base install doesn't have enough packages. So it's useful for me to test on desktop images, to see if it works there out of the box.

ikit
10 months ago

Hi, Why when I build my container from this hub when I connect to my container and run the command uname -a, I got an Ubuntu .....

root@dbedbe4ea6f4:/# uname -a
Linux dbedbe4ea6f4 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 GNU/Linux

I tried to build

  • FROM debian:jessie
  • FROM debian:latest
  • FROM debian:8.5
  • FROM debian:8

and for each I got an ubuntu :-(
Is it normal ?

azuresteve
a year ago

@m10141 use 'ip addr'

m10141
a year ago

The command ifconfig returns command not found

smcdowell
a year ago

If I use FROM debian:jessie as the basis of an image that is part of a commercial project, what does that imply from a licensing point of view? Is it equivalent to redistributing debian on a CD for instance...

rajamuthuraman
a year ago

@rajaaggie check out the DF

christianhesslemonade
2 years ago

The command uname -p returns unknown

jjuarez
2 years ago

...and what about lenny version? old version are very useful for doing nasty things like packaging for old infrastructures