This fork is obsolete. Refer to " Parallels Driver for Docker Machine" instead:
Go Shell
Clone or download
Pull request Compare This branch is 32 commits ahead, 2032 commits behind docker:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Godeps Revert "Merge pull request #1552 from ehazlett/b2d-next" Aug 3, 2015
commands Parallels driver: Refactor according to latest changes in master Aug 13, 2015
docs Parallels Driver: Add documentation Aug 13, 2015
drivers Revert "Turn on TimeSync feature" Aug 24, 2015
experimental Tooling for release build Jun 14, 2015
libmachine Use a single function for checking active machine Aug 7, 2015
log bugfix: logger.error was writing to stdout May 21, 2015
script - Re-introduce config migration; fix panics occurring from older configs Jul 28, 2015
ssh Fix defaulting to native SSH Jun 16, 2015
state Add Timeout state to ls command Jul 30, 2015
test/integration Update acceptance test Aug 18, 2015
utils Revert "Merge pull request #1552 from ehazlett/b2d-next" Aug 3, 2015
version Bump version to "0.4.0-1" Aug 24, 2015
.dockerignore Add some misses I found Jan 22, 2015
.gitignore provisioner: finished migration functions Mar 21, 2015
.godir Initial commit Dec 4, 2014
.travis.yml remove unneeded cleanup from travis config Mar 4, 2015 do not time travel and learn to spell Aug 10, 2015 Refactor integration tests Jun 2, 2015
Dockerfile Update Go version to 1.4.2 Jun 18, 2015
LICENSE Initial commit Dec 4, 2014
MAINTAINERS add nathan to maintainers Jun 4, 2015
Makefile Fixes from testing of hugo Jun 18, 2015 Added deprecation notice to Nov 3, 2015 Update Jun 8, 2015
main.go - Re-introduce config migration; fix panics occurring from older configs Jul 28, 2015
main_test.go Refactoring commands.go into new commands package, with separate file… Apr 15, 2015


This fork is officially deprecated in favor of Parallels Driver for Docker Machine, which is compatible with Docker Machine 0.5.0+

The code and documentation here only exist as a reference for users who have not yet switched over and want to use Docker Machine v0.4.0 with Parallels Desktop for Mac.

Docker Machine + Parallels driver

This is a fork of Docker Machine repository with added support of Parallels Desktop for Mac.



In order to use Docker Machine with Parallels Desktop you should install our custom docker-machine binary:

$ curl -L > /usr/local/bin/docker-machine

$ chmod +x /usr/local/bin/docker-machine

NB! This is a replacement for the official docker-machine binary. If you will install or update "Docker Toolbox" in the future, it could override this binary and you might want to re-download it again.


Official documentation for Docker Machine is available here.

To create a Parallels Desktop virtual machine for Docker purposes just run this command:

$ docker-machine create --driver=parallels prl-dev

Available options:

  • --parallels-boot2docker-url: The URL of the boot2docker image.
  • --parallels-disk-size: Size of disk for the host VM (in MB).
  • --parallels-memory: Size of memory for the host VM (in MB).
  • --parallels-cpu-count: Number of CPUs to use to create the VM (-1 to use the number of CPUs available).

The --parallels-boot2docker-url flag takes a few different forms. By default, if no value is specified for this flag, Machine will check locally for a boot2docker ISO. If one is found, that will be used as the ISO for the created machine. If one is not found, the latest ISO release available on boot2docker/boot2docker will be downloaded and stored locally for future use. Note that this means you must run docker-machine upgrade deliberately on a machine if you wish to update the "cached" boot2docker ISO.

This is the default behavior (when --parallels-boot2docker-url=""), but the option also supports specifying ISOs by the http:// and file:// protocols.

Environment variables and default values:

CLI option Environment variable Default
--parallels-boot2docker-url PARALLELS_BOOT2DOCKER_URL Latest boot2docker url
--parallels-cpu-count PARALLELS_CPU_COUNT 1
--parallels-disk-size PARALLELS_DISK_SIZE 20000
--parallels-memory PARALLELS_MEMORY_SIZE 1024


Docker Client is required to run Docker containers. It is bundled to Docker Toolbox

$ docker-machine create -d parallels prl-dev
Creating CA: /Users/legal/.docker/machine/certs/ca.pem
Creating client certificate: /Users/legal/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /Users/legal/.docker/machine/cache...
No default boot2docker iso found locally, downloading the latest release...
Downloading to /Users/legal/.docker/machine/cache/boot2docker.iso...
Creating SSH key...
Creating Parallels Desktop VM...
Starting Parallels Desktop VM...
Waiting for VM to come online...
To see how to connect Docker to this machine, run: docker-machine env prl-dev

$ docker-machine ls
NAME       ACTIVE   DRIVER       STATE     URL                         SWARM
prl-dev    *        parallels    Running   tcp://

$ eval "$(docker-machine env prl-dev)"

$ docker run busybox echo hello world
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
cf2616975b4a: Pull complete
6ce2e90b0bc7: Pull complete
8c2e06607696: Pull complete
Digest: sha256:df9e13f36d2d5b30c16bfbf2a6110c45ebed0bfa1ea42d357651bc6c736d5322
Status: Downloaded newer image for busybox:latest
hello world