ssh¶
SSH でマシンにログインするか、コマンドを実行します。
ログインするには、 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/
docker-machine ssh
コマンドは通常の ssh
プログラムが動作するように、リモートで直接実行するコマンドを指定することも可能です。
$ docker-machine ssh dev free
total used free shared buffers
Mem: 1023556 183136 840420 0 30920
-/+ buffers: 152216 871340
Swap: 1212036 0 1212036
コマンドに対するフラグも、同様に動作します。
$ 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
「外部の」SSH タイプを使う場合の詳細については、次のセクションで説明します。 ssh
バイナリを実行するコマンドには( Docker Machine によって作成されるコマンドと衝突しない限り)追加オプションを設定できます。例えば、次のコマンドは default
マシンから自分のホスト・コンピュータ上の localhost
に対して、ポート 8080 に転送するコマンドです。
$ docker-machine ssh default -L 8080:localhost:8080
異なったタイプの SSH¶
Docker Machine が呼び出される時、伝統的な ssh
バイナリがローカルにあるかどうか確認し、SSH コマンドを使う必要があれば、これを使おうとします。使う場面とは、create 時のような内部処理か、利用者が必要な時に明示するかどうかに拘わりません。外部の ssh
バイナリがローカルに存在しなければ、Go 言語内蔵の crypto/ssh を使おうとします。これは伝統的な UNIX ツールが利用できない環境で便利になるでしょう。例えば、Windows 上で Docker Machine を 使う時に、 msysgit がインストールされていなくても使えます。
多くの場合、実装の詳細について考慮する必要はありません。Docker Machine は難しい設定をしなくても利用できます。しかし、Go ネイティブ・バージョンを敢えて使おうとする場合は、グローバルなコマンドライン上のフラグ、または、環境変数の指定が必要です。
$ docker-machine --native-ssh ssh dev
2つの手法は様々なパターンを伴いますので、何らかの問題や一貫性が無い場合があれば、ご報告ください。