Log into or run a command on a machine using SSH.
To login, just run docker-machine ssh machinename
:
$ docker-machine ssh dev ## . ## ## ## == ## ## ## ## === /""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014 docker@boot2docker:~$ ls / Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/ bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
You can also specify commands to run remotely by appending them directly to the docker-machine ssh
command, much like the regular ssh
program works:
$ docker-machine ssh dev free total used free shared buffers Mem: 1023556 183136 840420 0 30920 -/+ buffers: 152216 871340 Swap: 1212036 0 1212036
Commands with flags work as well:
$ docker-machine ssh dev df -h Filesystem Size Used Available Use% Mounted on rootfs 899.6M 85.9M 813.7M 10% / tmpfs 899.6M 85.9M 813.7M 10% / tmpfs 499.8M 0 499.8M 0% /dev/shm /dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1 cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup /dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1/var/lib/docker/aufs
If you are using the “external” SSH type as detailed in the next section, you can include additional arguments to pass through to the ssh
binary in the generated command (unless they conflict with any of the default arguments for the command generated by Docker Machine). For instance, the following command forwards port 8080 from the default
machine to localhost
on your host computer:
$ docker-machine ssh default -L 8080:localhost:8080
When Docker Machine is invoked, it checks to see if you have the venerable ssh
binary around locally and attempts to use that for the SSH commands it needs to run, whether they are a part of an operation such as creation or have been requested by the user directly. If it does not find an external ssh
binary locally, it defaults to using a native Go implementation from crypto/ssh. This is useful in situations where you may not have access to traditional UNIX tools, such as if you are using Docker Machine on Windows without having msysgit installed alongside of it.
In most situations, you do not need to worry about this implementation detail and Docker Machine acts sensibly out of the box. However, if you deliberately want to use the Go native version, you can do so with a global command line flag / environment variable like so:
$ docker-machine --native-ssh ssh dev
There are some variations in behavior between the two methods, so report any issues or inconsistencies if you come across them.
© 2019 Docker, Inc.
Licensed under the Apache License, Version 2.0.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.
Docker, Inc. and other parties may also have trademark rights in other terms used herein.
https://docs.docker.com/machine/reference/ssh/