--- layout: default navsection: installguide title: Installing with Docker ... {% include 'alert_docker' %} h2. Prerequisites: # A GNU/Linux (virtual) machine # A working Docker installation h2. Download the source tree
~$ cd $HOME # (or wherever you want to install)
~$ git clone https://github.com/curoverse/arvados.git
See also: "Downloading the source code":https://arvados.org/projects/arvados/wiki/Download on the Arvados wiki. h2. Building the Arvados Docker containers First of all, a suitable @config.yml@ file is needed.
~$ cd arvados/docker
~$ cp config.yml.example config.yml
Edit the @config.yml@ file and fill in values for at a minimum these parameters:
PUBLIC_KEY_PATH
API_HOSTNAME
API_AUTO_ADMIN_USER
Then build the docker containers (this will take a while):

~$ ./build.sh
...
 ---> 05f0ae429530
Step 9 : ADD apache2_foreground.sh /etc/apache2/foreground.sh
 ---> 7292b241305a
Step 10 : CMD ["/etc/apache2/foreground.sh"]
 ---> Running in 82d59061ead8
 ---> 72cee36a9281
Successfully built 72cee36a9281
Removing intermediate container 2bc8c98c83c7
Removing intermediate container 9457483a59cf
Removing intermediate container 7cc5723df67c
Removing intermediate container 5cb2cede73de
Removing intermediate container 0acc147a7f6d
Removing intermediate container 82d59061ead8
Removing intermediate container 9c022a467396
Removing intermediate container 16044441463f
Removing intermediate container cffbbddd82d1
date >sso-image
If all goes well, you should now have a number of docker images built:
~$ docker.io images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
arvados/sso         latest              72cee36a9281        11 seconds ago       1.727 GB
arvados/keep        latest              c3842f856bcb        56 seconds ago       210.6 MB
arvados/workbench   latest              b91aa980597c        About a minute ago   2.07 GB
arvados/doc         latest              050e9e6b8213        About a minute ago   1.442 GB
arvados/api         latest              79843d0a8997        About a minute ago   2.112 GB
arvados/passenger   latest              2342a550da7f        2 minutes ago        1.658 GB
arvados/base        latest              68caefd8ea5b        5 minutes ago        1.383 GB
arvados/debian      7.5                 6e32119ffcd0        8 minutes ago        116.8 MB
arvados/debian      latest              6e32119ffcd0        8 minutes ago        116.8 MB
arvados/debian      wheezy              6e32119ffcd0        8 minutes ago        116.8 MB
h2. Running the Arvados Docker containers The @arvdock@ command can be used to start and stop the docker containers. It has a number of options:

~$ ./arvdock -h

usage: ./arvdock (start|stop|restart|test) [options]

./arvdock start/stop/restart options:
  -d [port], --doc[=port]        Documentation server (default port 9898)
  -w [port], --workbench[=port]  Workbench server (default port 9899)
  -s [port], --sso[=port]        SSO server (default port 9901)
  -a [port], --api[=port]        API server (default port 9900)
  -k, --keep                     Keep servers
  --ssh                          Enable SSH access to server containers
  -h, --help                     Display this help and exit

  If no options are given, the action is applied to all servers.

./arvdock test [testname] [testname] ...
  By default, all tests are run.

The @--ssh@ option can be useful to debug issues with the Docker containers; it allows you to ssh into the running containers as the @root@ user, provided you have access to the private key that matches the public key specified in @config.yml@'s PUBLIC_KEY_PATH variable. Start the docker containers:

~$ ./arvdock start
sso_server
Starting container:
  /usr/bin/docker.io run -d -i -t -p 9901:443 --name sso_server arvados/sso
api_server
Starting container:
  /usr/bin/docker.io run -d -i -t -p 9900:443 --name api_server --link sso_server:sso arvados/api
keep_server_0
Starting container:
  /usr/bin/docker.io run -d -i -t -p 25107:25107 --name keep_server_0 -v /tmp/tmp.aCSx8Pq6Wb:/dev/keep-0 --link api_server:api arvados/keep
keep_server_1
Starting container:
  /usr/bin/docker.io run -d -i -t -p 25108:25107 --name keep_server_1 -v /tmp/tmp.m4OQ9WB73G:/dev/keep-0 --link api_server:api arvados/keep
doc_server
Starting container:
  /usr/bin/docker.io run -d -i -t -p 9898:80 --name doc_server arvados/doc

*****************************************************************
You can access the Arvados documentation at http://localhost:9898
*****************************************************************

workbench_server
Starting container:
  /usr/bin/docker.io run -d -i -t -p 9899:80 --name workbench_server --link api_server:api arvados/workbench

*****************************************************************
You can access the Arvados workbench at http://localhost:9899
*****************************************************************
h2. Accessing workbench Point your browser to the Dockerized workbench:
https://localhost:9899
Now use the google account you specified as @API_AUTO_ADMIN_USER@ in @config.yml@ to log in. You will be prompted *twice* by your browser that you are accessing a site with an untrusted SSL certificate. This is normal; by default the Arvados Docker installation uses self-signed SSL certificates for the SSO and API servers, respectively.