Package Exports
- docker-machine
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (docker-machine) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
docker-machine
Programmatic API to Docker Machine (0.6.0+).
Wraps thedocker-machineCLI.
Table of Contents
Example
node example.js ls /
const Machine = require('docker-machine')
const cmd = process.argv.slice(2)
const machine = new Machine()
// Start if not already started
machine.start(function (err) {
if (err) throw err
// Execute a command
machine.ssh(cmd, (err, result) => {
if (err) throw err
console.log(result)
})
})API
new Machine([name || opts])
Options:
- name: defaults to
DOCKER_MACHINE_NAMEor "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
parseis true. - parse: if true,
resultwill 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 = require('docker-machine')
Machine.env('default', { json: true }, (err, result) => {
console.log(result.DOCKER_HOST)
})Machine.create(name, driver[, options], (err) => ..)
Create a machine. Options are driver-specific.
const options = {
'virtualbox-memory': '1024'
}
Machine.create('test', 'virtualbox', options, (err) => {
if (err) throw err
})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:
lstimeout 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-machineLicense
MIT © 2016-present Vincent Weevers