jclouds/apis/docker
Ignasi Barrera d290705419 Next development version 2.1.0-SNAPSHOT 2016-11-15 01:12:59 +01:00
..
src Change types of variables in docker ImageSummary 2016-10-26 21:31:13 +02:00
README.md Update Docker README.md 2016-08-19 17:49:25 +02:00
pom.xml Next development version 2.1.0-SNAPSHOT 2016-11-15 01:12:59 +01:00

README.md

Docker as a local cloud provider

jclouds-docker is a local cloud provider modelled on docker. Similar to other jclouds supported providers, it supports the same portable abstractions offered by jclouds.

Setup

Please follow these steps to configure your workstation for jclouds-docker:

Sample configuration for Linux systems using systemd

Run following commands on a machine where is the Docker Engine installed. It enables remote access (plain TCP - only for loopback address 127.0.0.1) on standard port 2375.

# switch to root account
sudo su -

# create override for docker start-script
mkdir /etc/systemd/system/docker.service.d
cat << EOT > /etc/systemd/system/docker.service.d/allow-tcp.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://
EOT

# reload configuration and restart docker daemon
systemctl daemon-reload
systemctl restart docker

# close the 'root' session
exit

If the -H fd:// Docker daemon parameter doesn't work on your Linux (e.g. Fedora), then replace it by -H unix:///var/run/docker.sock

Find more details in Control and configure Docker with systemd guide.

Running live tests

The DOCKER_HOST environment variable has to be configured as it's used as a value for test.docker.endpoint system property.

export DOCKER_HOST="http://localhost:2375/"
mvn -Plive integration-test

How it works

                                           ---------------   -------------
                                          |   Image(s)    | |   Node(s)   |
                                          ---------------   -------------
 ---------    docker remote api           ----------------------------------------
| jclouds | ---------------------------> |              DOCKER_HOST              |
 ---------                               ----------------------------------------

Components

  • jclouds - acts as a java client to access to docker features
  • DOCKER_HOST - hosts Docker API, NB: jclouds-docker assumes that the latest Docker is installed
  • Image - it is a docker image that can be started.
  • Node - is a docker container

Assumptions

  • jclouds-docker assumes that the images specified using the template are ssh'able.

Notes:

  • report any issues you find at jclouds issues
  • jclouds-docker has been tested on Mac OSX and Linux. However, it has never been tried on Windows.

Troubleshooting

As jclouds docker support is quite new, issues may occasionally arise. You can try to remove all containers to get things going again:

docker rm -f `docker ps -aq`