汎用(generic)ドライバ¶
既存の仮想マシン/ホストを、SSH 経由で Docker Machine が扱えるマシンにします。
これが役立つのは、Docker Machine のプロバイダがサポートされていない場合や、既存の Docker ホスト環境を Docker Machine で管理できるよう移行する場合です。
作成時、ドライバは以下の処理を行います。
- ホスト上で docker が動いていなければ、自動的にインストールを行う。
- ホスト上のパッケージを更新します(
apt-get update
yum update
... ) - docker デーモンを安全にする証明書を生成する。
- docker デーモンを再起動するため、実行中のコンテナは全て停止される。
- ホスト名がマシン名に対応します。
例¶
マシン・インスタンスを作成するには、 --driver generic
を指定します。また、ホストの IP アドレスまたは DNS 名と、ホストに接続できるようにするための SSH 秘密鍵も指定します。
$ docker-machine create \
--driver generic \
--generic-ip-address=203.0.113.81 \
--generic-ssh-key=~/.ssh/id_rsa \
vm
パスワードで保護された SSH 鍵¶
SSH 認証情報の指定( --generic-ssh-key
フラグを使う )がなければ、 SSH エージェントは(実行中であれば)訊ねます。つまり、パスワードで保護された SSH 鍵を簡単に使えるようにします。
ただしサポートされているのは、外部の SSH クライアント、ここでは ssh
バイナリが実行できるデフォルトの挙動が扱える場合のみです。ネイティブ・クライアントを使う場合( --native-ssh
)は、まだ SSH エージェントの利用をサポートしていませんのでご注意ください。
$ docker-machine create \
--driver generic \
--generic-ip-address=203.0.113.81 \
other
sudo 権限¶
ホストに SSH 接続できるユーザを指定するには --generic-ssh-user
フラグを使います。この時、指定したユーザはパスワード入力なしに sudo を実行する権限が必要です。もしそのようになっていなければ、 sudoers
ファイルを編集し、そのユーザに NOPASSWD
としての調整が必要になります。詳しくは ドキュメント をご覧ください。
オプション¶
--generic-ip-address
: 必須 ホストの IP アドレス--generic-ssh-key
: SSH ユーザのプライベート鍵のパス--generic-ssh-user
: 接続に使う SSH ユーザ名--generic-ssh-port
: SSH に使うポート番号
注釈
Docker Machine がサポートしているベース・オペレーティング・システムを使う必要があります。
利用可能な環境変数とデフォルト値は以下の通りです。
コマンドライン・オプション | 環境変数 | デフォルト値 |
---|---|---|
--generic-ip-address |
GENERIC_IP_ADDRESS |
|
--generic-ssh-key |
GENERIC_SSH_KEY |
( ssh-agent に従う ) |
--generic-ssh-user |
GENERIC_SSH_USER |
root |
--generic-ssh-port |
GENERIC_SSH_PORT |
22 |