moby--moby/docs/sources/installation/debian.md

3.5 KiB

page_title: Installation on Debian page_description: Instructions for installing Docker on Debian. page_keywords: Docker, Docker documentation, installation, debian

Debian

Docker is supported on the following versions of Debian:

Debian Jessie 8.0 (64-bit)

Debian 8 comes with a 3.14.0 Linux kernel, and a docker.io package which installs all its prerequisites from Debian's repository.

Note: Debian contains a much older KDE3/GNOME2 package called docker, so the package and the executable are called docker.io.

Installation

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.

Note: If you want to enable memory and swap accounting see this.

Debian Wheezy/Stable 7.x (64-bit)

Docker requires Kernel 3.8+, while Wheezy ships with Kernel 3.2 (for more details on why 3.8 is required, see discussion on bug #407).

Fortunately, wheezy-backports currently has Kernel 3.16 , which is officially supported by Docker.

Installation

  1. Install Kernel from wheezy-backports

    Add the following line to your /etc/apt/sources.list

    deb http://http.debian.net/debian wheezy-backports main

    then install the linux-image-amd64 package (note the use of -t wheezy-backports)

     $ sudo apt-get update
     $ sudo apt-get install -t wheezy-backports linux-image-amd64
    
  2. Restart your system. This is necessary for Debian to use your new kernel.

  3. Install Docker using the get.docker.com script:

    curl -sSL https://get.docker.com/ | sh

Giving non-root access

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.

Warning: The docker group (or the group specified with the -G flag) is root-equivalent; see Docker Daemon Attack Surface details.

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

What next?

Continue with the User Guide.