2013-05-21 11:47:16 -06:00
|
|
|
:title: Requirements and Installation on Ubuntu Linux
|
|
|
|
:description: Please note this project is currently under heavy development. It should not be used in production.
|
|
|
|
:keywords: Docker, Docker documentation, requirements, virtualbox, vagrant, git, ssh, putty, cygwin, linux
|
|
|
|
|
2013-08-27 14:29:49 -07:00
|
|
|
.. _ubuntu_linux:
|
|
|
|
|
2013-04-22 18:38:42 -07:00
|
|
|
Ubuntu Linux
|
|
|
|
============
|
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
.. warning::
|
|
|
|
|
|
|
|
These instructions have changed for 0.6. If you are upgrading from
|
|
|
|
an earlier version, you will need to follow them again.
|
2013-08-23 11:45:52 -07:00
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
.. include:: install_header.inc
|
2013-04-22 18:38:42 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
Right now, the officially supported distribution are:
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
- :ref:`ubuntu_precise`
|
|
|
|
- :ref:`ubuntu_raring`
|
|
|
|
|
|
|
|
Docker has the following dependencies
|
|
|
|
|
2013-05-24 14:42:00 -07:00
|
|
|
* Linux kernel 3.8 (read more about :ref:`kernel`)
|
2013-05-15 16:11:59 -07:00
|
|
|
* AUFS file system support (we are working on BTRFS support as an alternative)
|
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
Please read :ref:`ufw`, if you plan to use `UFW (Uncomplicated
|
|
|
|
Firewall) <https://help.ubuntu.com/community/UFW>`_
|
2013-07-30 13:47:29 +02:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
.. _ubuntu_precise:
|
|
|
|
|
|
|
|
Ubuntu Precise 12.04 (LTS) (64-bit)
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
This installation path should work at all times.
|
2013-03-26 08:50:34 -07:00
|
|
|
|
2013-04-23 12:04:53 -07:00
|
|
|
|
|
|
|
Dependencies
|
|
|
|
------------
|
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
**Linux kernel 3.8**
|
|
|
|
|
2013-08-06 13:56:29 -07:00
|
|
|
Due to a bug in LXC, docker works best on the 3.8 kernel. Precise
|
2013-08-28 17:26:10 -07:00
|
|
|
comes with a 3.2 kernel, so we need to upgrade it. The kernel you'll
|
|
|
|
install when following these steps comes with AUFS built in. We also
|
|
|
|
include the generic headers to enable packages that depend on them,
|
|
|
|
like ZFS and the VirtualBox guest additions. If you didn't install the
|
|
|
|
headers for your "precise" kernel, then you can skip these headers for
|
|
|
|
the "raring" kernel. But it is safer to include them if you're not
|
|
|
|
sure.
|
2013-05-15 16:11:59 -07:00
|
|
|
|
2013-04-23 12:04:53 -07:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
# install the backported kernel
|
2013-08-06 13:56:29 -07:00
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
|
2013-05-15 16:11:59 -07:00
|
|
|
|
|
|
|
# reboot
|
|
|
|
sudo reboot
|
2013-04-23 12:04:53 -07:00
|
|
|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
.. warning::
|
|
|
|
|
|
|
|
These instructions have changed for 0.6. If you are upgrading from
|
|
|
|
an earlier version, you will need to follow them again.
|
|
|
|
|
2013-08-23 10:41:53 -07:00
|
|
|
Docker is available as a Debian package, which makes installation easy.
|
|
|
|
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
.. code-block:: bash
|
2013-03-26 08:50:34 -07:00
|
|
|
|
2013-08-23 12:56:03 -07:00
|
|
|
# Add the Docker repository key to your local keychain
|
2013-08-27 19:59:36 -07:00
|
|
|
# using apt-key finger you can check the fingerprint matches 36A1 D786 9245 C895 0F96 6E92 D857 6A8B A88D 21E9
|
2013-08-26 11:45:15 +02:00
|
|
|
sudo sh -c "curl https://get.docker.io/gpg | apt-key add -"
|
2013-08-23 12:56:03 -07:00
|
|
|
|
2013-08-23 10:41:53 -07:00
|
|
|
# Add the Docker repository to your apt sources list.
|
2013-09-13 19:21:43 +00:00
|
|
|
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
|
2013-03-26 08:50:34 -07:00
|
|
|
|
2013-05-24 18:55:32 +03:00
|
|
|
# Update your sources
|
2013-05-15 16:11:59 -07:00
|
|
|
sudo apt-get update
|
|
|
|
|
|
|
|
# Install, you will see another warning that the package cannot be authenticated. Confirm install.
|
|
|
|
sudo apt-get install lxc-docker
|
|
|
|
|
|
|
|
Verify it worked
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-19 20:59:43 -07:00
|
|
|
.. code-block:: bash
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
# download the base 'ubuntu' container and run bash inside it while setting up an interactive shell
|
2013-08-13 18:05:35 -07:00
|
|
|
sudo docker run -i -t ubuntu /bin/bash
|
2013-05-15 16:11:59 -07:00
|
|
|
|
|
|
|
# type 'exit' to exit
|
|
|
|
|
|
|
|
|
|
|
|
**Done!**, now continue with the :ref:`hello_world` example.
|
|
|
|
|
|
|
|
.. _ubuntu_raring:
|
|
|
|
|
|
|
|
Ubuntu Raring 13.04 (64 bit)
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
------------
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
**AUFS filesystem support**
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
Ubuntu Raring already comes with the 3.8 kernel, so we don't need to install it. However, not all systems
|
|
|
|
have AUFS filesystem support enabled, so we need to install it.
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-19 20:59:43 -07:00
|
|
|
.. code-block:: bash
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-19 20:59:43 -07:00
|
|
|
sudo apt-get update
|
2013-05-15 16:11:59 -07:00
|
|
|
sudo apt-get install linux-image-extra-`uname -r`
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-06-03 17:29:41 -04:00
|
|
|
|
2013-05-15 16:11:59 -07:00
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
2013-08-23 10:41:53 -07:00
|
|
|
Docker is available as a Debian package, which makes installation easy.
|
2013-05-15 16:11:59 -07:00
|
|
|
|
2013-08-23 10:41:53 -07:00
|
|
|
*Please note that these instructions have changed for 0.6. If you are upgrading from an earlier version, you will need
|
|
|
|
to follow them again.*
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-19 20:59:43 -07:00
|
|
|
.. code-block:: bash
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-08-23 12:56:03 -07:00
|
|
|
# Add the Docker repository key to your local keychain
|
2013-08-27 19:59:36 -07:00
|
|
|
# using apt-key finger you can check the fingerprint matches 36A1 D786 9245 C895 0F96 6E92 D857 6A8B A88D 21E9
|
2013-09-19 21:14:39 +02:00
|
|
|
sudo sh -c "curl https://get.docker.io/gpg | apt-key add -"
|
2013-08-23 12:56:03 -07:00
|
|
|
|
2013-08-23 10:41:53 -07:00
|
|
|
# Add the Docker repository to your apt sources list.
|
2013-09-13 19:21:43 +00:00
|
|
|
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
|
2013-05-15 16:11:59 -07:00
|
|
|
|
|
|
|
# update
|
|
|
|
sudo apt-get update
|
|
|
|
|
|
|
|
# install
|
|
|
|
sudo apt-get install lxc-docker
|
|
|
|
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-22 18:38:42 -07:00
|
|
|
Verify it worked
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-04-19 20:59:43 -07:00
|
|
|
.. code-block:: bash
|
2013-03-25 19:52:52 -07:00
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
# download the base 'ubuntu' container
|
|
|
|
# and run bash inside it while setting up an interactive shell
|
2013-08-13 18:05:35 -07:00
|
|
|
sudo docker run -i -t ubuntu /bin/bash
|
2013-05-15 16:11:59 -07:00
|
|
|
|
|
|
|
# type exit to exit
|
2013-03-25 19:52:52 -07:00
|
|
|
|
|
|
|
|
2013-04-22 18:38:42 -07:00
|
|
|
**Done!**, now continue with the :ref:`hello_world` example.
|
2013-07-30 13:47:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
.. _ufw:
|
|
|
|
|
|
|
|
Docker and UFW
|
|
|
|
^^^^^^^^^^^^^^
|
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
Docker uses a bridge to manage containers networking, by default UFW
|
|
|
|
drop all `forwarding`, a first step is to enable forwarding:
|
2013-07-30 13:47:29 +02:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
sudo nano /etc/default/ufw
|
|
|
|
----
|
|
|
|
# Change:
|
|
|
|
# DEFAULT_FORWARD_POLICY="DROP"
|
|
|
|
# to
|
|
|
|
DEFAULT_FORWARD_POLICY="ACCEPT"
|
|
|
|
|
|
|
|
Then reload UFW:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
sudo ufw reload
|
|
|
|
|
|
|
|
|
2013-08-28 17:26:10 -07:00
|
|
|
UFW's default set of rules denied all `incoming`, so if you want to be
|
|
|
|
able to reach your containers from another host, you should allow
|
|
|
|
incoming connections on the docker port (default 4243):
|
2013-07-30 13:47:29 +02:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
sudo ufw allow 4243/tcp
|
|
|
|
|