docker-machine ls
Estimated reading time: 3 minutesUsage: docker-machine ls [OPTIONS] [arg...]
List machines
Options:
--quiet, -q Enable quiet mode
--filter [--filter option --filter option] Filter output based on conditions provided
--timeout, -t "10" Timeout in seconds, default to 10s
--format, -f Pretty-print machines using a Go template
Timeout
The ls
command tries to reach each host in parallel. If a given host does not
answer in less than 10 seconds, the ls
command states that this host is in
Timeout
state. In some circumstances (poor connection, high load, or while
troubleshooting), you may want to increase or decrease this value. You can use
the -t flag for this purpose with a numerical value in seconds.
Example
$ docker-machine ls -t 12
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v1.9.1
Filtering
The filtering flag (--filter
) format is a key=value
pair. If there is more
than one filter, then pass multiple flags. For example:
--filter "foo=bar" --filter "bif=baz"
The currently supported filters are:
- driver (driver name)
- swarm (swarm master’s name)
- state (
Running|Paused|Saved|Stopped|Stopping|Starting|Error
) - name (Machine name returned by driver, supports golang style regular expressions)
- label (Machine created with
--engine-label
option, can be filtered withlabel=<key>[=<value>]
)
Examples
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
dev - virtualbox Stopped
foo0 - virtualbox Running tcp://192.168.99.105:2376 v1.9.1
foo1 - virtualbox Running tcp://192.168.99.106:2376 v1.9.1
foo2 * virtualbox Running tcp://192.168.99.107:2376 v1.9.1
$ docker-machine ls --filter name=foo0
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
foo0 - virtualbox Running tcp://192.168.99.105:2376 v1.9.1
$ docker-machine ls --filter driver=virtualbox --filter state=Stopped
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
dev - virtualbox Stopped v1.9.1
$ docker-machine ls --filter label=com.class.app=foo1 --filter label=com.class.app=foo2
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
foo1 - virtualbox Running tcp://192.168.99.105:2376 v1.9.1
foo2 * virtualbox Running tcp://192.168.99.107:2376 v1.9.1
Formatting
The formatting option (--format
) pretty-prints machines using a Go template.
Valid placeholders for the Go template are listed below:
Placeholder | Description |
---|---|
.Name | Machine name |
.Active | Is the machine active? |
.ActiveHost | Is the machine an active non-swarm host? |
.ActiveSwarm | Is the machine an active swarm master? |
.DriverName | Driver name |
.State | Machine state (running, stopped...) |
.URL | Machine URL |
.Swarm | Machine swarm name |
.Error | Machine errors |
.DockerVersion | Docker Daemon version |
.ResponseTime | Time taken by the host to respond |
When using the --format
option, the ls
command either outputs the data exactly as the template declares or,
when using the table directive, includes column headers as well.
The following example uses a template without headers and outputs the Name
and Driver
entries separated by a colon
for all running machines:
$ docker-machine ls --format "{{.Name}}: {{.DriverName}}"
default: virtualbox
ec2: amazonec2
To list all machine names with their driver in a table format you can use:
$ docker-machine ls --format "table {{.Name}} {{.DriverName}}"
NAME DRIVER
default virtualbox
ec2 amazonec2