Vultr, a Cloud hosting services provider, supports Docker Machine through their own Docker Machine driver, which you can install on Linux Mint 18 and Ubuntu 16.04 using this guide.

With the driver installed, you may then provision Dockerized hosts, or machines, on the Vultr platform using the docker-machine create command. A list of available operating systems on Vultr is accessible via this URL. That’s rendered by the browser in a JSON format that’s painful to read.

To obtain a JSON output that’s a lot more easy on the eyes, use the following curl command.

# Pipe output of the curl command through a Python script

curl -H 'Accept: application/json' \
 https://api.vultr.com/v1/os/list | python -mjson.tool

#

The output should be like the one shown below. Note that each operating system has an id.

# List of operating systems available on Vultr in pretty JSON

{
    "127": {
        "OSID": 127,
        "name": "CentOS 6 x64",
        "arch": "x64",
        "family": "centos",
        "windows": false
    },
    "147": {
        "OSID": 147,
        "name": "CentOS 6 i386",
        "arch": "i386",
        "family": "centos",
        "windows": false
    },
    "162": {
        "OSID": 162,
        "name": "CentOS 5 x64",
        "arch": "x64",
        "family": "centos",
        "windows": false
    },
    "163": {
        "OSID": 163,
        "name": "CentOS 5 i386",
        "arch": "i386",
        "family": "centos",
        "windows": false
    },
    "167": {
        "OSID": 167,
        "name": "CentOS 7 x64",
        "arch": "x64",
        "family": "centos",
        "windows": false
    },
    "128": {
        "OSID": 128,
        "name": "Ubuntu 12.04 x64",
        "arch": "x64",
        "family": "ubuntu",
        "windows": false
    },
    "148": {
        "OSID": 148,
        "name": "Ubuntu 12.04 i386",
        "arch": "i386",
        "family": "ubuntu",
        "windows": false
    },
    "160": {
        "OSID": 160,
        "name": "Ubuntu 14.04 x64",
        "arch": "x64",
        "family": "ubuntu",
        "windows": false
    },
    "161": {
        "OSID": 161,
        "name": "Ubuntu 14.04 i386",
        "arch": "i386",
        "family": "ubuntu",
        "windows": false
    },
    "215": {
        "OSID": 215,
        "name": "Ubuntu 16.04 x64",
        "arch": "x64",
        "family": "ubuntu",
        "windows": false
    },
    "216": {
        "OSID": 216,
        "name": "Ubuntu 16.04 i386",
        "arch": "i386",
        "family": "ubuntu",
        "windows": false
    },
    "231": {
        "OSID": 231,
        "name": "Ubuntu 16.10 x64",
        "arch": "x64",
        "family": "ubuntu",
        "windows": false
    },
    "232": {
        "OSID": 232,
        "name": "Ubuntu 16.10 i386",
        "arch": "i386",
        "family": "ubuntu",
        "windows": false
    },
    "139": {
        "OSID": 139,
        "name": "Debian 7 x64 (wheezy)",
        "arch": "x64",
        "family": "debian",
        "windows": false
    },
    "152": {
        "OSID": 152,
        "name": "Debian 7 i386 (wheezy)",
        "arch": "i386",
        "family": "debian",
        "windows": false
    },
    "193": {
        "OSID": 193,
        "name": "Debian 8 x64 (jessie)",
        "arch": "x64",
        "family": "debian",
        "windows": false
    },
    "194": {
        "OSID": 194,
        "name": "Debian 8 i386 (jessie)",
        "arch": "i386",
        "family": "debian",
        "windows": false
    },
    "140": {
        "OSID": 140,
        "name": "FreeBSD 10 x64",
        "arch": "x64",
        "family": "freebsd",
        "windows": false
    },
    "230": {
        "OSID": 230,
        "name": "FreeBSD 11 x64",
        "arch": "x64",
        "family": "freebsd",
        "windows": false
    },
    "179": {
        "OSID": 179,
        "name": "CoreOS Stable",
        "arch": "x64",
        "family": "coreos",
        "windows": false
    },
    "225": {
        "OSID": 225,
        "name": "Fedora 24 x64",
        "arch": "x64",
        "family": "fedora",
        "windows": false
    },
    "124": {
        "OSID": 124,
        "name": "Windows 2012 R2 x64",
        "arch": "x64",
        "family": "windows",
        "windows": true
    },
    "159": {
        "OSID": 159,
        "name": "Custom",
        "arch": "x64",
        "family": "iso",
        "windows": false
    },
    "164": {
        "OSID": 164,
        "name": "Snapshot",
        "arch": "x64",
        "family": "snapshot",
        "windows": false
    },
    "180": {
        "OSID": 180,
        "name": "Backup",
        "arch": "x64",
        "family": "backup",
        "windows": false
    },
    "186": {
        "OSID": 186,
        "name": "Application",
        "arch": "x64",
        "family": "application",
        "windows": false
    }
}

#

Knowing the id of an operating system, you can now specify it when creating a Dockerized host on the Vultr platform. For example, to create a Dockerized host with Debian 8 Jessie, whose id is 193, as the base operating system, you would type the following command.

# Create a Dockerized host on Vultr with Debian 8 as the base operating system

docker-machine create -d vultr --vultr-os-id 193  --vultr-api-key $VTOKEN debian-vtr

#

A separate article on how to provision Dockerized hosts on Vultr is about to be published later today, so stay tuned!
Vultr Cloud banner