docker-machine
Programmatic API to Docker Machine (0.6.0+).
Wraps thedocker-machine
CLI.
Table of Contents
Example
node example.js ls /
const Machine = const cmd = processargvconst machine = // Start if not already startedmachinestart { if err throw err // Execute a command machine}
API
new Machine([name || opts])
Options:
- name: defaults to
DOCKER_MACHINE_NAME
or "default"
machine.status((err, status) => ..)
Get lowercased status of the machine.
machine.isRunning((err, running) => ..)
True if status is running
.
machine.start(err => ..)
Start machine, if not already running.
machine.stop(err => ..)
Stop machine, if not already stopped.
machine.kill(err => ..)
Kill machine, if not already stopped.
machine.env([opts], (err, result) => ..)
Get the environment variables to dictate that Docker should run a command against a particular machine. By default, env()
returns the output from docker-machine env
as-is. That is, a script which can be run in a subshell. Options:
- shell: custom shell. Ignored if
parse
is true. - parse: if true,
result
will be a plain object:
DOCKER_TLS_VERIFY: '1' DOCKER_HOST: 'tcp://<ip>:<port>' DOCKER_CERT_PATH: '<home>/.docker/machine/machines/<name>' DOCKER_MACHINE_NAME: '<name>'
machine.ssh(command, (err, result) => ..)
Run a command via SSH. The command
can be a string or an array.
machine.inspect((err, result) => ..)
Get the output of docker-machine inspect
as a plain object with camelCase properties.
Static methods
All of the above methods (from status()
to inspect()
) are also accessible as static methods, where the first argument is a name
. For example:
const Machine = Machine
Machine.create(name, driver[, options], (err) => ..)
Create a machine. Options are driver-specific.
const options = 'virtualbox-memory': '1024' Machine
Machine.list([opts], (err, machines) => ..)
Get all machines as an array, via docker-machine ls
. Each machine is a plain object with camelCase properties.
name: 'agent-1' // Machine name activeHost: false // Is the machine an active host? activeSwarm: false // Is the machine an active swarm master? active: '*' // Human-readable combination of the above driverName: 'virtualbox' // Driver name state: 'running' // Machine state (running, stopped) url: 'tcp://192.168.99.101:2376' // Machine URL swarm: null // Machine swarm name dockerVersion: 'v1.12.0' // Docker Daemon version responseTime: 980 // Time taken by the host to respond (ms) error: null // Machine errors
Options:
- timeout:
ls
timeout in seconds (see docker/machine#1696) - inspect: if true, also include the metadata from
inspect()
for each machine:
name: 'agent-1' // Plus all of the above driver: // Driver metadata cpu: 1 memory: 2048 hostOnlyCidr: '192.168.99.1/24' hostOptions: // Various host options engineOptions: swarmOptions:
Install
With npm do:
npm install docker-machine
License
MIT © 2016-present Vincent Weevers