Machine の概念に対する理解とヘルプを得る¶
Docker Machine を使えば、様々な環境・様々な仮想マシン上で Docker が動くマシンを自動作成できます。これはローカルのシステム上だけでなく、クラウド・プロバイダ上でも、ベアメタル・サーバ(物理コンピュータ)上でも可能です。Docker Machine で Docker ホストを作成したら、Docker Engine クライアントを使えば、必要に応じてホスト上でイメージの構築やコンテナ作成が可能になります。
マシン作成用のドライバ¶
仮想マシンを作成するには、Docker Machine 実行時に使いたいドライバの名前を指定します。ドライバの選択は、仮想マシンをどこで作成するかによります。例えば、ローカルの Mac や Windows システム上であれば、Oracle VirtualBox が一般的なドライバになります。物理マシン上にプロビジョニングする場合は generic (ジェネリック)ドライバです。クラウド・プロバイダであれば、 Docker Machine は AWS ・ Microsoft Azure ・ Digital Ocean 等々に対応してます。Docker Machine のリファレンスに サポートしているドライバ一覧 があります。
ローカルまたはクラウド上でデフォルトのベース OS¶
Docker を Linux 上で動かす場合、Docker Machine のプロビジョニングは仮想マシンのベースとなるオペレーティング・システムに依存します。簡単なのはデフォルトのベース・オペレーティング・システムを使うことです。Oracle Virtual Box ドライバであれば、ベースにするオペレーティング・システムは boot2docker です。クラウド・プロバイダを使う場合はベース・オペレーティング・システムは Ubuntu 12.04 以上です。このデフォルトはマシン作成時に変更できます。Docker Machine リファレンスの サポートしているオペレーティング・システムの一覧 をご覧ください。
Docker ホストの IP アドレス¶
各マシンの作成時、Docker ホストに対して Linux 仮想マシンの IP アドレスが割り当てられます。これは docker-machine create
サブコマンドの実行時に割り当てられます。作成したマシンの一覧は docker-machine ls
コマンドで確認できます。 docker-machine ip <マシン名>
コマンドは、指定したホストの IP アドレスを返します。
CLI の操作対象 Docker ホストを環境変数で指定¶
マシン上で docker
コマンドを実行する前に、コマンドライン上で対象のマシンを指定する必要があります。 docker-machine env <マシン名>
サブコマンドを実行したら、適切な命令を出力します。
docker-machine
サブコマンドの一覧は Docker Machine サブコマンド をご覧ください。
クラッシュ報告¶
ホストのプロビジョニングには複雑な問題があり、様々な理由により失敗する場合があります。皆さんの作業環境ではシェル、ネットワーク設定、VPN、プロキシやファイアウォールに関する多くの問題があるかもしれません。また、これが他との問題の切り分け箇所(クラウド・プロバイダ、あるいは、ネットワーク間での問題か)になります。
docker-machine
が安定するための手助けとなるよう、私たちはホスト上で create
や upgrade
を試みるときクラッシュ(障害情報)を監視できるようにしました。クラッシュ報告は HTTPS を経由して送信します。送信される情報は docker-machine
のバージョン、構築に関して、OS 、アーキテクチャ、現在のシェル上のパス、ホスト上での直近の履歴といった、 --debug
オプション指定時に参照できるものです。送信されたデータは docker-machine
実行時にどのような問題が発生しているかを、ピンポイントで把握できるようにします。送信されるのは docker-machine
がクラッシュした場合のみです。
エラーメッセージを送りたくなければ、自分の $HOME/docker/machine
ディレクトリに no-error-report
ファイルを置きます。そうしておけば Docker Machine はレポートを報告しません。
$ mkdir -p ~/.docker/machine && touch ~/.docker/machine/no-error-report
このファイルは空のままで構いません。Docker Machine はファイルの存否のみ確認します。
ヘルプが必要ですか?¶
Docker Machine は開発途上であり、積極的に開発が行われています。ヘルプが必要であれば、あるいは貢献したい場合、一番簡単なのはプロジェクトの仲間に声をかけることです。私たちはコミュニケーションのために開かれたチャンネルを用意しています。
- バグ報告や機能リクエストを送りたい: GitHub の課題トラッカー をご利用ください。
- プロジェクトの人々とリアルタイムに会話したい: IRC の
#docker-machine
チャンネルにご参加ください。 - コードやドキュメント変更に貢献したい: GitHub にプル・リクエストを送信 ください。
更に詳しい情報やリソースについては、 プロジェクトのヘルプ ページをご覧ください。
次はどこへ¶
- ローカルシステム上に VirtualBox を使い Docker ホストを作成・実行する
- クラウド・プロバイダ上に 複数の Docker ホストを自動構築する
- Docker Machine ドライバ・リファレンス
- Docker Machine サブコマンド・リファレンス
参考
- Understand Machine concepts and get help
- https://docs.docker.com/machine/concepts/