page_title: Installation from Binaries
page_description: Instructions for installing Docker as a binary. Mostly meant for hackers who want to try out Docker on a variety of environments.
page_keywords: binaries, installation, docker, documentation, linux

# Binaries

**This instruction set is meant for hackers who want to try out Docker
on a variety of environments.**

Before following these directions, you should really check if a packaged
version of Docker is already available for your distribution. We have
packages for many distributions, and more keep showing up all the time!

## Check runtime dependencies

To run properly, docker needs the following software to be installed at
runtime:

 - iptables version 1.4 or later
 - Git version 1.7 or later
 - procps (or similar provider of a "ps" executable)
 - XZ Utils 4.9 or later
 - a [properly mounted](
   https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount)
   cgroupfs hierarchy (having a single, all-encompassing "cgroup" mount
   point [is](https://github.com/docker/docker/issues/2683)
   [not](https://github.com/docker/docker/issues/3485)
   [sufficient](https://github.com/docker/docker/issues/4568))

## Check kernel dependencies

Docker in daemon mode has specific kernel requirements. For details,
check your distribution in [*Installation*](../#installation-list).

In general, a 3.8 Linux kernel is the minimum requirement for Docker, as
some of the prior versions have known issues that are triggered by Docker.
Linux kernel versions older than 3.8 are known to cause kernel panics and
to break Docker.

The latest minor version (3.x.y) of the 3.10 (or a newer maintained version)
Linux kernel is recommended. Keeping the kernel up to date with the latest
minor version will ensure critical kernel bugs get fixed.

Note that Docker also has a client mode, which can run on virtually any
Linux kernel (it even builds on OS X!).

## Get the docker binary:

    $ wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker
    $ chmod +x docker

> **Note**:
> If you have trouble downloading the binary, you can also get the smaller
> compressed release file:
> [https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz](
> https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz)

## Run the docker daemon

    # start the docker in daemon mode from the directory you unpacked
    $ sudo ./docker -d &

## 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.

> **Warning**: 
> The *docker* group (or the group specified with `-G`) is root-equivalent;
> see [*Docker Daemon Attack Surface*](
> /articles/security/#dockersecurity-daemon) details.

## Upgrades

To upgrade your manual installation of Docker, first kill the docker
daemon:

    $ killall docker

Then follow the regular installation steps.

## Run your first container!

    # check your docker version
    $ sudo ./docker version

    # run a container and open an interactive shell in the container
    $ sudo ./docker run -i -t ubuntu /bin/bash

Continue with the [User Guide](/userguide/).
