ubuntulinux.rst 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. :title: Requirements and Installation on Ubuntu Linux
  2. :description: Please note this project is currently under heavy development. It should not be used in production.
  3. :keywords: Docker, Docker documentation, requirements, virtualbox, vagrant, git, ssh, putty, cygwin, linux
  4. .. _ubuntu_linux:
  5. Ubuntu
  6. ======
  7. .. warning::
  8. These instructions have changed for 0.6. If you are upgrading from
  9. an earlier version, you will need to follow them again.
  10. .. include:: install_header.inc
  11. Docker is supported on the following versions of Ubuntu:
  12. - :ref:`ubuntu_precise`
  13. - :ref:`ubuntu_raring_saucy`
  14. Please read :ref:`ufw`, if you plan to use `UFW (Uncomplicated
  15. Firewall) <https://help.ubuntu.com/community/UFW>`_
  16. .. _ubuntu_precise:
  17. Ubuntu Precise 12.04 (LTS) (64-bit)
  18. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  19. This installation path should work at all times.
  20. Dependencies
  21. ------------
  22. **Linux kernel 3.8**
  23. Due to a bug in LXC, Docker works best on the 3.8 kernel. Precise
  24. comes with a 3.2 kernel, so we need to upgrade it. The kernel you'll
  25. install when following these steps comes with AUFS built in. We also
  26. include the generic headers to enable packages that depend on them,
  27. like ZFS and the VirtualBox guest additions. If you didn't install the
  28. headers for your "precise" kernel, then you can skip these headers for
  29. the "raring" kernel. But it is safer to include them if you're not
  30. sure.
  31. .. code-block:: bash
  32. # install the backported kernel
  33. sudo apt-get update
  34. sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
  35. # reboot
  36. sudo reboot
  37. Installation
  38. ------------
  39. .. warning::
  40. These instructions have changed for 0.6. If you are upgrading from
  41. an earlier version, you will need to follow them again.
  42. Docker is available as a Debian package, which makes installation
  43. easy. **See the :ref:`installmirrors` section below if you are not in
  44. the United States.** Other sources of the Debian packages may be
  45. faster for you to install.
  46. First add the Docker repository key to your local keychain.
  47. .. code-block:: bash
  48. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
  49. Add the Docker repository to your apt sources list, update and install the
  50. ``lxc-docker`` package.
  51. *You may receive a warning that the package isn't trusted. Answer yes to
  52. continue installation.*
  53. .. code-block:: bash
  54. sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
  55. > /etc/apt/sources.list.d/docker.list"
  56. sudo apt-get update
  57. sudo apt-get install lxc-docker
  58. .. note::
  59. There is also a simple ``curl`` script available to help with this process.
  60. .. code-block:: bash
  61. curl -s https://get.docker.io/ubuntu/ | sudo sh
  62. Now verify that the installation has worked by downloading the ``ubuntu`` image
  63. and launching a container.
  64. .. code-block:: bash
  65. sudo docker run -i -t ubuntu /bin/bash
  66. Type ``exit`` to exit
  67. **Done!**, now continue with the :ref:`hello_world` example.
  68. .. _ubuntu_raring_saucy:
  69. Ubuntu Raring 13.04 and Saucy 13.10 (64 bit)
  70. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  71. These instructions cover both Ubuntu Raring 13.04 and Saucy 13.10.
  72. Dependencies
  73. ------------
  74. **Optional AUFS filesystem support**
  75. Ubuntu Raring already comes with the 3.8 kernel, so we don't need to install it. However, not all systems
  76. have AUFS filesystem support enabled. AUFS support is optional as of version 0.7, but it's still available as
  77. a driver and we recommend using it if you can.
  78. To make sure AUFS is installed, run the following commands:
  79. .. code-block:: bash
  80. sudo apt-get update
  81. sudo apt-get install linux-image-extra-`uname -r`
  82. Installation
  83. ------------
  84. Docker is available as a Debian package, which makes installation easy.
  85. .. warning::
  86. Please note that these instructions have changed for 0.6. If you are upgrading from an earlier version, you will need
  87. to follow them again.
  88. First add the Docker repository key to your local keychain.
  89. .. code-block:: bash
  90. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
  91. Add the Docker repository to your apt sources list, update and install the
  92. ``lxc-docker`` package.
  93. .. code-block:: bash
  94. sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
  95. > /etc/apt/sources.list.d/docker.list"
  96. sudo apt-get update
  97. sudo apt-get install lxc-docker
  98. Now verify that the installation has worked by downloading the ``ubuntu`` image
  99. and launching a container.
  100. .. code-block:: bash
  101. sudo docker run -i -t ubuntu /bin/bash
  102. Type ``exit`` to exit
  103. **Done!**, now continue with the :ref:`hello_world` example.
  104. Giving non-root access
  105. ----------------------
  106. The ``docker`` daemon always runs as the root user, and since Docker version
  107. 0.5.2, the ``docker`` daemon binds to a Unix socket instead of a TCP port. By
  108. default that Unix socket is owned by the user *root*, and so, by default, you
  109. can access it with ``sudo``.
  110. Starting in version 0.5.3, if you (or your Docker installer) create a
  111. Unix group called *docker* and add users to it, then the ``docker``
  112. daemon will make the ownership of the Unix socket read/writable by the
  113. *docker* group when the daemon starts. The ``docker`` daemon must
  114. always run as the root user, but if you run the ``docker`` client as a user in
  115. the *docker* group then you don't need to add ``sudo`` to all the
  116. client commands.
  117. .. warning:: The *docker* group is root-equivalent.
  118. **Example:**
  119. .. code-block:: bash
  120. # Add the docker group if it doesn't already exist.
  121. sudo groupadd docker
  122. # Add the connected user "${USER}" to the docker group.
  123. # Change the user name to match your preferred user.
  124. # You may have to logout and log back in again for
  125. # this to take effect.
  126. sudo gpasswd -a ${USER} docker
  127. # Restart the Docker daemon.
  128. sudo service docker restart
  129. Upgrade
  130. --------
  131. To install the latest version of docker, use the standard ``apt-get`` method:
  132. .. code-block:: bash
  133. # update your sources list
  134. sudo apt-get update
  135. # install the latest
  136. sudo apt-get install lxc-docker
  137. .. _ufw:
  138. Docker and UFW
  139. ^^^^^^^^^^^^^^
  140. Docker uses a bridge to manage container networking. By default, UFW drops all
  141. `forwarding` traffic. As a result will you need to enable UFW forwarding:
  142. .. code-block:: bash
  143. sudo nano /etc/default/ufw
  144. ----
  145. # Change:
  146. # DEFAULT_FORWARD_POLICY="DROP"
  147. # to
  148. DEFAULT_FORWARD_POLICY="ACCEPT"
  149. Then reload UFW:
  150. .. code-block:: bash
  151. sudo ufw reload
  152. UFW's default set of rules denies all `incoming` traffic. If you want to be
  153. able to reach your containers from another host then you should allow
  154. incoming connections on the Docker port (default 4243):
  155. .. code-block:: bash
  156. sudo ufw allow 4243/tcp
  157. .. _installmirrors:
  158. Mirrors
  159. ^^^^^^^
  160. You should ``ping get.docker.io`` and compare the latency to the
  161. following mirrors, and pick whichever one is best for you.
  162. Yandex
  163. ------
  164. `Yandex <http://yandex.ru/>`_ in Russia is mirroring the Docker Debian
  165. packages, updating every 6 hours. Substitute
  166. ``http://mirror.yandex.ru/mirrors/docker/`` for
  167. ``http://get.docker.io/ubuntu`` in the instructions above. For example:
  168. .. code-block:: bash
  169. sudo sh -c "echo deb http://mirror.yandex.ru/mirrors/docker/ docker main\
  170. > /etc/apt/sources.list.d/docker.list"
  171. sudo apt-get update
  172. sudo apt-get install lxc-docker