1 Deploying Arvados in Docker Containers
2 ======================================
4 This file explains how to build and deploy Arvados servers in Docker
5 containers, so that they can be run easily in different environments
6 (a dedicated server, a developer's laptop, a virtual machine,
9 This is a work in progress; instructions will almost certainly be
10 incomplete and possibly out of date.
17 Docker is a Linux container management system based on LXC. It is a
18 very young system but is being developed rapidly.
19 [Installation packages](http://www.docker.io/gettingstarted/)
20 are available for several platforms.
22 If a prebuilt docker package is not available for your platform, the
23 short instructions for installing it are:
25 1. Create a `docker` group and add yourself to it.
28 $ sudo addgroup docker
29 $ sudo adduser `whoami` docker
34 2. Add a `cgroup` filesystem and mount it:
38 $ grep cgroup /etc/fstab
39 none /cgroup cgroup defaults 0 0
43 3. Enable IPv4 forwarding:
46 $ grep ipv4.ip_forward /etc/sysctl.conf
48 $ sudo sysctl net.ipv4.ip_forward=1
51 4. [Download and run a docker binary from docker.io.](http://docs.docker.io/en/latest/installation/binaries/)
55 * sudo privileges to run `debootstrap`
60 1. Copy `config.yml.example` to `config.yml` and edit it with settings
61 for your installation.
62 2. Run `make` to build the following Docker images:
64 * arvados/api - the Arvados API server
65 * arvados/doc - Arvados documentation
66 * arvados/warehouse - Keep, the Arvados content-addressable filesystem
67 * arvados/workbench - the Arvados console
68 * arvados/sso - the Arvados single-signon authentication server
70 You may also build Docker images for individual Arvados services:
74 $ make warehouse-image
75 $ make workbench-image
81 1. Make sure the `ARVADOS_DNS_SERVER` has been provisioned with the
82 following DNS entries, resolving to the appropriate IP addresses
83 where each service will be deployed.
87 * compute0.$API_HOSTNAME
88 * controller.$API_HOSTNAME
89 * workbench.$API_HOSTNAME
91 2. The `run.sh` script in this directory will start all Arvados
92 servers on your machine.