Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
October 27, 2015 23:03
October 21, 2020 19:45
October 5, 2020 21:58
December 26, 2018 20:38
October 21, 2020 19:45
October 5, 2020 22:04
October 21, 2020 19:45

Docker Machine Parallels Driver

This is a plugin for Docker Machine allowing to create Docker hosts locally on Parallels Desktop for Mac



Install via MacPorts:

$ sudo port install docker-machine-parallels

Install via Homebrew:

$ brew install docker-machine-parallels

To install this plugin manually, download the binary docker-machine-driver-parallels and make it available by $PATH, for example by putting it to /usr/local/bin/:

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

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

The latest version of docker-machine-driver-parallels binary is available on the "Releases" page.


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).
  • --parallels-video-size: Size of video memory for host (in MB).
  • --parallels-share-folder: Path to the directory which should be shared with the host VM. Could be specified multiple times, once per each directory.
  • --parallels-no-share: Disable the sharing of any directory.
  • --parallels-nested-virtualization: Enable nested virtualization.

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.

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
--parallels-video-size PARALLELS_VIDEO_SIZE 64
--parallels-share-folder - /Users
--parallels-no-share - false
--parallels-nested-virtualization - false


Build from Source

If you wish to work on Parallels Driver for Docker machine, you'll first need Go installed (version 1.14+ is required). Make sure Go is properly installed, including setting up a GOPATH.

Run these commands to build the plugin binary:

$ go get -d
$ cd $GOPATH/src/
$ make build

After the build is complete, bin/docker-machine-driver-parallels binary will be created. If you want to copy it to the ${GOPATH}/bin/, run make install.

Managing Dependencies

When you make a fresh copy of the repo, all the dependencies are in vendor/ directory for the build to work. This project uses golang/dep as dependency management tool. Please refer to dep documentation for further details.

Acceptance Tests

We use Bats for acceptance testing, so, install it first.

You also need to build the plugin binary by calling make build.

Then you can run acceptance tests using this command:

$ make test-acceptance

Acceptance tests will invoke the general docker-machine binary available by $PATH. If you want to specify it explicitly, just set MACHINE_BINARY env variable:

$ MACHINE_BINARY=/path/to/docker-machine make test-acceptance