If your work combines Jenkins and Docker, CloudShare's Jenkins plugin makes it easy to execute Docker commands on dedicated CloudShare Docker-Machines, instead of running them on the Jenkins host.
There's no need to provision environments or VMs from CloudShare -- It's all done for you.
You'll enjoy these benefits when working with the Jenkins plugin:
Each job runs on its own dedicated VM that does the actual building and running of Docker images. This gives you easy parallelization without using Jenkins slaves.
You can execute Docker-Compose based tests without worrying about conflicting published ports. There won't be any collisions, since different jobs will use different VMs. So, it's fine to include the same port bindings in your test scripts as you use when you test locally on your developer machine,.
Since any Docker-Compose based test runs in isolation on its own VM, you can easily SSH into it and debug a failed test, if needed, without worrying about disturbing/pausing Jenkins itself.
There is no need to worry about Docker container/image/volume accumulation and cleanup. The VMs are deleted after a configurable expiration period, and your Jenkins host won't get clogged up with obsolete Docker files.
CloudShare Docker-Machines get auto-suspended when the job is idle. We have extended our auto-suspension mechanism to sense when a Docker-Machine is actually being used. Once no containers are running and nothing is transmitted over the Docker port (TCP:2376) for 15 minutes, CloudShare auto-suspends the environment. It will automatically resume when the job runs again.
With the CloudShare plugin enabled, Jenkins uses Docker-Machine to run containers remotely and securely over TCP. So there is no need to mount the Docker daemon's socket as a volume and you won't need to run Jenkins as a privileged container, which is a security concern.