2014-05-17 22:28:39 +02:00
page_title: Installation on Debian
2014-05-27 13:08:19 -04:00
page_description: Instructions for installing Docker on Debian.
2014-05-17 22:28:39 +02:00
page_keywords: Docker, Docker documentation, installation, debian
# Debian
Docker is supported on the following versions of Debian:
2014-12-12 21:15:22 -03:30
- [*Debian 8.0 Jessie (64-bit)* ](#debian-jessie-80-64-bit )
2014-12-18 11:24:59 +01:00
- [*Debian 7.7 Wheezy (64-bit)* ](#debian-wheezystable-7x-64-bit )
2014-05-17 22:28:39 +02:00
## Debian Jessie 8.0 (64-bit)
2015-04-17 14:54:40 +02:00
Debian 8 comes with a 3.16.0 Linux kernel, the `docker.io` package can be found in the `jessie-backports` repository. Reasoning behind this can be found < a href = "https://lists.debian.org/debian-release/2015/03/msg00685.html" target = "_blank" > here</ a > . Instructions how to enable the backports repository can be found < a href = "http://backports.debian.org/Instructions/" target = "_blank" > here</ a > .
2014-05-17 22:28:39 +02:00
> **Note**:
> Debian contains a much older KDE3/GNOME2 package called ``docker``, so the
> package and the executable are called ``docker.io``.
### Installation
2015-04-17 14:54:40 +02:00
Make sure you enabled the `jessie-backports` repository, as stated above.
2014-05-17 22:28:39 +02:00
To install the latest Debian package (may not be the latest Docker release):
$ sudo apt-get update
$ sudo apt-get install docker.io
To verify that everything has worked as expected:
$ sudo docker run -i -t ubuntu /bin/bash
Which should download the `ubuntu` image, and then start `bash` in a container.
2015-03-11 17:56:04 +01:00
> **Note**:
2014-05-17 22:28:39 +02:00
> If you want to enable memory and swap accounting see
> [this](/installation/ubuntulinux/#memory-and-swap-accounting).
2014-08-24 15:48:56 +05:30
## Debian Wheezy/Stable 7.x (64-bit)
2014-09-01 09:55:53 +10:00
Docker requires Kernel 3.8+, while Wheezy ships with Kernel 3.2 (for more details
on why 3.8 is required, see discussion on
2015-04-15 11:23:28 -07:00
[bug #407 ](https://github.com/docker/docker/issues/407 )).
2014-08-24 15:48:56 +05:30
2014-12-18 11:22:08 +01:00
Fortunately, wheezy-backports currently has [Kernel 3.16
2014-09-01 09:55:53 +10:00
](https://packages.debian.org/search?suite=wheezy-backports& section=all& arch=any& searchon=names& keywords=linux-image-amd64),
which is officially supported by Docker.
2014-08-24 15:48:56 +05:30
### Installation
2014-12-18 11:22:08 +01:00
1. Install Kernel from wheezy-backports
2015-03-11 17:56:04 +01:00
2014-09-01 09:55:53 +10:00
Add the following line to your `/etc/apt/sources.list`
2014-08-24 15:48:56 +05:30
2014-09-01 09:55:53 +10:00
`deb http://http.debian.net/debian wheezy-backports main`
2014-08-24 15:48:56 +05:30
2014-09-01 09:55:53 +10:00
then install the `linux-image-amd64` package (note the use of
`-t wheezy-backports` )
2015-03-11 17:56:04 +01:00
2014-09-01 09:55:53 +10:00
$ sudo apt-get update
$ sudo apt-get install -t wheezy-backports linux-image-amd64
2014-08-24 15:48:56 +05:30
2015-03-11 17:56:04 +01:00
2. Restart your system. This is necessary for Debian to use your new kernel.
3. Install Docker using the get.docker.com script:
2015-04-07 13:01:34 +08:00
2014-09-23 19:18:09 -04:00
`curl -sSL https://get.docker.com/ | sh`
2014-08-24 15:48:56 +05:30
2015-04-07 13:01:34 +08:00
>**Note**: If your company is behind a filtering proxy, you may find that the
>`apt-key`
>command fails for the Docker repo during installation. To work around this,
>add the key directly using the following:
>
> $ wget -qO- https://get.docker.com/gpg | sudo apt-key add -
2014-08-24 15:48:56 +05:30
## Giving non-root access
2014-05-17 22:28:39 +02:00
2014-05-22 07:05:19 +10:00
The `docker` daemon always runs as the `root` user and the `docker`
daemon binds to a Unix socket instead of a TCP port. By default that
Unix socket is owned by the user `root` , and so, by default, you can
access it with `sudo` .
If you (or your Docker installer) create a Unix group called `docker`
and add users to it, then the `docker` daemon will make the ownership of
the Unix socket read/writable by the `docker` group when the daemon
starts. The `docker` daemon must always run as the root user, but if you
run the `docker` client as a user in the `docker` group then you don't
need to add `sudo` to all the client commands. From Docker 0.9.0 you can
use the `-G` flag to specify an alternative group.
2014-05-17 22:28:39 +02:00
2015-03-11 17:56:04 +01:00
> **Warning**:
2014-05-17 22:28:39 +02:00
> The `docker` group (or the group specified with the `-G` flag) is
> `root`-equivalent; see [*Docker Daemon Attack Surface*](
2014-12-12 21:15:22 -03:30
> /articles/security/#docker-daemon-attack-surface) details.
2014-05-17 22:28:39 +02:00
**Example:**
# Add the docker group if it doesn't already exist.
$ sudo groupadd docker
# Add the connected user "${USER}" to the docker group.
# Change the user name to match your preferred user.
# You may have to logout and log back in again for
# this to take effect.
$ sudo gpasswd -a ${USER} docker
# Restart the Docker daemon.
$ sudo service docker restart
2014-08-24 15:48:56 +05:30
2014-05-22 07:05:19 +10:00
## What next?
Continue with the [User Guide ](/userguide/ ).