Merge branch 'master' into 2257-inequality-conditions
[arvados.git] / docker / README.md
index 17b0d23d3b74ce0b71348c4c460ca77be7ae4d33..f521b8c90135dfdcf06923c2b4d6f6ad0c56d14f 100644 (file)
@@ -16,47 +16,66 @@ Prerequisites
 
   Docker is a Linux container management system based on LXC. It is a
   very young system but is being developed rapidly.
-  [Installation packages](http://www.docker.io/gettingstarted/#h_installation)
+  [Installation packages](http://www.docker.io/gettingstarted/)
   are available for several platforms.
-
-* Ruby (any version)
+  
+  If a prebuilt docker package is not available for your platform, the
+  short instructions for installing it are:
+  
+  1. Create a `docker` group and add yourself to it.
+
+     <pre>
+     $ sudo addgroup docker
+     $ sudo adduser `whoami` docker
+     </pre>
+
+     Log out and back in.
+        
+  2. Add a `cgroup` filesystem and mount it:
+
+     <pre>
+     $ mkdir -p /cgroup
+     $ grep cgroup /etc/fstab
+     none   /cgroup    cgroup    defaults    0    0
+     $ sudo mount /cgroup
+        </pre>
+        
+  3. [Download and run a docker binary from docker.io.](http://docs.docker.io/en/latest/installation/binaries/)
+
+* Ruby (version 1.9.3 or greater)
 
 * sudo privileges to run `debootstrap`
 
 Building
 --------
 
-1. Copy `config.yml.example` to `config.yml` and edit it with settings
-   for your installation.
-2. Run `make` to build the following Docker images:
+Type `./build.sh` to configure and build the following Docker images:
 
    * arvados/api       - the Arvados API server
-   * arvados/docserver - Arvados documentation
+   * arvados/doc       - Arvados documentation
    * arvados/warehouse - Keep, the Arvados content-addressable filesystem
    * arvados/workbench - the Arvados console
    * arvados/sso       - the Arvados single-signon authentication server
 
-   You may also build Docker images for individual Arvados services:
-
-        $ make api-image
-        $ make docserver-image
-        $ make warehouse-image
-        $ make workbench-image
-        $ make sso-image
+`build.sh` will generate reasonable defaults for all configuration
+settings.  If you want more control over the way Arvados is
+configured, first copy `config.yml.example` to `config.yml` and edit
+it with appropriate configuration settings, and then run `./build.sh`.
 
-Deploying
----------
+Running
+-------
 
-1. Make sure the `ARVADOS_DNS_SERVER` has been provisioned with the
-   following DNS entries, resolving to the appropriate IP addresses
-   where each service will be deployed.
+The `arvdock` script in this directory is used to start, stop and
+restart Arvados servers on your machine.  The simplest and easiest way
+to use it is `./arvdock start` to start the full complement of Arvados
+servers, and `./arvdock stop` and `./arvdock restart` to stop and
+restart all servers, respectively.
 
-   * $API_HOSTNAME
-   * keep0.$API_HOSTNAME
-   * compute0.$API_HOSTNAME
-   * controller.$API_HOSTNAME
-   * workbench.$API_HOSTNAME
+Developers who are working on individual servers can start, stop or
+restart just those containers, e.g.:
 
-2. The `run.sh` script in this directory will start all Arvados
-   servers on your machine.
+* `./arvdock start --api --sso` to start just the API and SSO services.
+* `./arvdock stop --keep` to stop just the Keep services.
+* `./arvdock restart --workbench=8000` restarts just the Workbench service on port 8000.
 
+For a full set of arguments, use `./arvdock --help`.