2015-06-07 23:07:20 -04:00
|
|
|
<!--[metadata]>
|
|
|
|
+++
|
|
|
|
title = "Installation from binaries"
|
|
|
|
description = "Instructions for installing Docker as a binary. Mostly meant for hackers who want to try out Docker on a variety of environments."
|
|
|
|
keywords = ["binaries, installation, docker, documentation, linux"]
|
|
|
|
[menu.main]
|
2016-01-23 23:36:40 -05:00
|
|
|
parent = "engine_install"
|
2015-06-07 23:07:20 -04:00
|
|
|
weight = 110
|
|
|
|
+++
|
|
|
|
<![end-metadata]-->
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
# 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:
|
|
|
|
|
2014-04-23 16:48:28 -04:00
|
|
|
- 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
|
2014-07-24 18:19:50 -04:00
|
|
|
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))
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
## Check kernel dependencies
|
|
|
|
|
|
|
|
Docker in daemon mode has specific kernel requirements. For details,
|
2015-11-22 20:15:39 -05:00
|
|
|
check your distribution in [*Installation*](index.md#on-linux).
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2014-12-02 11:21:43 -05:00
|
|
|
A 3.10 Linux kernel is the minimum requirement for Docker.
|
|
|
|
Kernels older than 3.10 lack some of the features required to run Docker
|
|
|
|
containers. These older versions are known to have bugs which cause data loss
|
|
|
|
and frequently panic under certain conditions.
|
2014-09-15 08:15:55 -04:00
|
|
|
|
|
|
|
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.
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2014-12-02 11:21:43 -05:00
|
|
|
> **Warning**:
|
2015-02-08 23:02:16 -05:00
|
|
|
> Installing custom kernels and kernel packages is probably not
|
2014-12-02 11:21:43 -05:00
|
|
|
> supported by your Linux distribution's vendor. Please make sure to
|
|
|
|
> ask your vendor about Docker support first before attempting to
|
|
|
|
> install custom kernels on your distribution.
|
|
|
|
|
|
|
|
> **Warning**:
|
|
|
|
> Installing a newer kernel might not be enough for some distributions
|
|
|
|
> which provide packages which are too old or incompatible with
|
|
|
|
> newer kernels.
|
|
|
|
|
2014-04-15 20:53:12 -04:00
|
|
|
Note that Docker also has a client mode, which can run on virtually any
|
2014-07-01 17:59:28 -04:00
|
|
|
Linux kernel (it even builds on OS X!).
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2015-02-08 23:02:16 -05:00
|
|
|
## Enable AppArmor and SELinux when possible
|
|
|
|
|
|
|
|
Please use AppArmor or SELinux if your Linux distribution supports
|
|
|
|
either of the two. This helps improve security and blocks certain
|
|
|
|
types of exploits. Your distribution's documentation should provide
|
|
|
|
detailed steps on how to enable the recommended security mechanism.
|
2014-12-02 11:21:43 -05:00
|
|
|
|
|
|
|
Some Linux distributions enable AppArmor or SELinux by default and
|
|
|
|
they run a kernel which doesn't meet the minimum requirements (3.10
|
|
|
|
or newer). Updating the kernel to 3.10 or newer on such a system
|
|
|
|
might not be enough to start Docker and run containers.
|
|
|
|
Incompatibilities between the version of AppArmor/SELinux user
|
|
|
|
space utilities provided by the system and the kernel could prevent
|
2015-02-08 23:02:16 -05:00
|
|
|
Docker from running, from starting containers or, cause containers to
|
2014-12-02 11:21:43 -05:00
|
|
|
exhibit unexpected behaviour.
|
|
|
|
|
|
|
|
> **Warning**:
|
2015-02-08 23:02:16 -05:00
|
|
|
> If either of the security mechanisms is enabled, it should not be
|
2014-12-02 11:21:43 -05:00
|
|
|
> disabled to make Docker or its containers run. This will reduce
|
|
|
|
> security in that environment, lose support from the distribution's
|
2015-02-08 23:02:16 -05:00
|
|
|
> vendor for the system, and might break regulations and security
|
2014-12-02 11:21:43 -05:00
|
|
|
> policies in heavily regulated environments.
|
|
|
|
|
2015-04-21 11:50:09 -04:00
|
|
|
## Get the Docker binary
|
2015-04-18 16:14:44 -04:00
|
|
|
|
|
|
|
You can download either the latest release binary or a specific version.
|
|
|
|
After downloading a binary file, you must set the file's execute bit to run it.
|
|
|
|
|
|
|
|
To set the file's execute bit on Linux and OS X:
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2014-05-01 10:13:34 -04:00
|
|
|
$ chmod +x docker
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2015-06-13 12:21:50 -04:00
|
|
|
To get the list of stable release version numbers from GitHub, view the
|
2016-01-23 23:36:40 -05:00
|
|
|
`docker/docker` [releases page](https://github.com/docker/docker/releases).
|
2015-04-18 16:14:44 -04:00
|
|
|
|
|
|
|
> **Note**
|
|
|
|
>
|
|
|
|
> 1) You can get the MD5 and SHA256 hashes by appending .md5 and .sha256 to the URLs respectively
|
|
|
|
>
|
|
|
|
> 2) You can get the compressed binaries by appending .tgz to the URLs
|
|
|
|
|
|
|
|
### Get the Linux binary
|
|
|
|
|
|
|
|
To download the latest version for Linux, use the
|
|
|
|
following URLs:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Linux/i386/docker-latest
|
2016-01-23 23:36:40 -05:00
|
|
|
|
2015-04-18 16:14:44 -04:00
|
|
|
https://get.docker.com/builds/Linux/x86_64/docker-latest
|
|
|
|
|
|
|
|
To download a specific version for Linux, use the
|
|
|
|
following URL patterns:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Linux/i386/docker-<version>
|
2016-01-23 23:36:40 -05:00
|
|
|
|
2015-04-18 16:14:44 -04:00
|
|
|
https://get.docker.com/builds/Linux/x86_64/docker-<version>
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
https://get.docker.com/builds/Linux/i386/docker-1.9.1
|
2015-04-18 16:14:44 -04:00
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
https://get.docker.com/builds/Linux/x86_64/docker-1.9.1
|
2015-04-18 16:14:44 -04:00
|
|
|
|
|
|
|
|
|
|
|
### Get the Mac OS X binary
|
|
|
|
|
|
|
|
The Mac OS X binary is only a client. You cannot use it to run the `docker`
|
|
|
|
daemon. To download the latest version for Mac OS X, use the following URLs:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Darwin/x86_64/docker-latest
|
|
|
|
|
|
|
|
To download a specific version for Mac OS X, use the
|
|
|
|
following URL patterns:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Darwin/x86_64/docker-<version>
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
https://get.docker.com/builds/Darwin/x86_64/docker-1.9.1
|
2015-04-18 16:14:44 -04:00
|
|
|
|
2015-04-21 11:50:09 -04:00
|
|
|
### Get the Windows binary
|
2016-01-23 23:36:40 -05:00
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
You can only download the Windows client binary for version `1.9.1` onwards.
|
2015-04-18 16:14:44 -04:00
|
|
|
Moreover, the binary is only a client, you cannot use it to run the `docker` daemon.
|
|
|
|
To download the latest version for Windows, use the following URLs:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Windows/i386/docker-latest.exe
|
2016-01-23 23:36:40 -05:00
|
|
|
|
2015-04-18 16:14:44 -04:00
|
|
|
https://get.docker.com/builds/Windows/x86_64/docker-latest.exe
|
|
|
|
|
|
|
|
To download a specific version for Windows, use the following URL pattern:
|
|
|
|
|
|
|
|
https://get.docker.com/builds/Windows/i386/docker-<version>.exe
|
2016-01-23 23:36:40 -05:00
|
|
|
|
2015-04-18 16:14:44 -04:00
|
|
|
https://get.docker.com/builds/Windows/x86_64/docker-<version>.exe
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
https://get.docker.com/builds/Windows/i386/docker-1.9.1.exe
|
2015-04-18 16:14:44 -04:00
|
|
|
|
2015-12-21 18:08:18 -05:00
|
|
|
https://get.docker.com/builds/Windows/x86_64/docker-1.9.1.exe
|
2015-04-18 16:14:44 -04:00
|
|
|
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2015-04-21 11:50:09 -04:00
|
|
|
## Run the Docker daemon
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
# start the docker in daemon mode from the directory you unpacked
|
2015-07-22 15:37:17 -04:00
|
|
|
$ sudo ./docker daemon &
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
## Giving non-root access
|
|
|
|
|
2014-05-21 17:05:19 -04: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.
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2016-01-23 23:36:40 -05:00
|
|
|
> **Warning**:
|
2014-04-18 16:21:55 -04:00
|
|
|
> The *docker* group (or the group specified with `-G`) is root-equivalent;
|
2015-11-14 21:01:24 -05:00
|
|
|
> see [*Docker Daemon Attack Surface*](../security/security.md#docker-daemon-attack-surface) details.
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
## Upgrades
|
|
|
|
|
|
|
|
To upgrade your manual installation of Docker, first kill the docker
|
|
|
|
daemon:
|
|
|
|
|
2014-05-01 10:13:34 -04:00
|
|
|
$ killall docker
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
Then follow the regular installation steps.
|
|
|
|
|
|
|
|
## Run your first container!
|
|
|
|
|
|
|
|
# check your docker version
|
2014-05-01 10:13:34 -04:00
|
|
|
$ sudo ./docker version
|
2014-04-15 20:53:12 -04:00
|
|
|
|
|
|
|
# run a container and open an interactive shell in the container
|
2014-05-01 10:13:34 -04:00
|
|
|
$ sudo ./docker run -i -t ubuntu /bin/bash
|
2014-04-15 20:53:12 -04:00
|
|
|
|
2015-11-22 20:15:39 -05:00
|
|
|
Continue with the [User Guide](../userguide/index.md).
|