Docker Machine をクラウド・プロバイダで使う¶
Docker Machine は様々なクラウド・プラットフォーオムに対応したプラグインを扱えます。このプラグインに対応したドライバを使うと、Machine でクラウド・ホストを自動作成します。自動構築に Docker Machine を使えば、作成されるホスト上に Docker Engine も自動インストールできます。
必要になるのは Docker Machine のインストール・実行と、利用するクラウド・プロバイダ上でのアカウント作成です。
次にアカウント証明書、セキュリティ証明書など、 docker-machine create
コマンドのオプション用フラグで必要なものを確認します。例えば、 Digital Ocean のアクセス・トークンを指定するには --digitalocean-access_token
フラグを使います。以降のページでは Digital Ocean と AWS の設定例を見ていきます。
サンプル¶
Digital Ocean¶
次のコマンドは Digital Ocean 上に「docker-sandbox」という名前のドロップレット(クラウド・ホスト)を作成します。
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox
Machine を使い、Digital Ocean 上のホストで更なる操作をするには Digital Ocean サンプル をご覧ください。
Amazon Web Services (AWS)¶
次のコマンドは AWS EC2 上に「aws-sandbox」という名前のドロップレット(クラウド・ホスト)を作成します。
$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C******* aws-sandbox
Machine を使い、AWS 上の Docker 対応インスタンスで更なる操作をするには Amazon Web Services (AWS) サンプル をご覧ください。
docker-machine create コマンド¶
docker-machine create
コマンドの実行時、いくつか最小限の指定が必要となります。
--driver
マシンを作成するプロバイダを明示します( VirtualBox 、 DigitalOcean 、 AWS 、等)。
- クラウド・サービスを使う場合は、(クラウド・プロバイダの)アカウント証明書やセキュリティ証明書の指定。
<マシン名>
作成したいホスト名。
扱いやすいように、 docker-machine
でサーバ作成時に一般的なオプションがデフォルトで適用されます。しかし、これらのデフォルト値はフラグを使って上書きできます(例: --digitalocean-image
)。そのため、クラウド・サーバで多くのメモリや CPU を割り当てたい場合には便利でしょう(デフォルトの docker-machine
は小さなサーバを作成します)。
デフォルトの値、あるいは利用可能なフラグや設定を全て確認したい場合は、コマンドラインで docker-machine create -h` を使います。他にも、Machine コマンドライン・リファレンス の create コマンドや、Machine ドライバ・リファレンスの ドライバのオプションと、デフォルト OS をご覧ください。
クラウド・プロバイダ向けのドライバ¶
Docker Machine をインストールすると、様々なクラウド・プロバイダに対応したドライバ(Amazon Web Services 、 Digital Ocean 、 Microsoft Azure 等)と、ローカルのプロバイダ(Oracle VirtualBox 、VMware Fusion 、Microsoft Hyper-V)が利用可能になります。
各ドライバの詳細は Docker Machine ドライバ・リファレンス から、必要なフラグや設定オプション(プロバイダ毎にかなり違います)をご確認ください。
サード・パーティのドライバ・プラグイン¶
サード・パーティの貢献者による様々なクラウド・プラットフォームに対応した Docker Machine プラグインがあります。これらのプラグイン利用にあたっては、利用者の皆さん自身でリスクを取ってください。Docker によって直接メンテナンスされているものではありません。
GItHub の docker/machine リポジトリ上の 利用可能なドライバ・プラグイン をご覧ください。
ドライバを使わずにホストを追加¶
Docker の場所を指定すると、ドライバがないホストの追加が可能です。既存のホストに関するマシン名を指定することにより、Docker コマンド使用時に毎回オプションを指定する必要がなくなります。
$ docker-machine create --url=tcp://50.134.234.20:2376 custombox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
custombox * none Running tcp://50.134.234.20:2376
Machine で Docker Swarm クラスタの自動構築¶
Docker Machine を使えば Docker Swarm クラスタのプロビジョンもできます。どのドライバを使っても TLS で安全にします。
- Swarm を使うには Docker Swarm の入手方法 をご覧ください。
- Machine で Swarm クラスタを構築する方法は Docker Machine で Swarm クラスタをプロビジョン をご覧ください。
次はどこへ行きますか¶
- サンプル: Docker 対応の Digital Ocean ドロップレット をプロビジョニング
- サンプル: Docker 対応の AWS EC2 インスタンス をプロビジョニング
- Machine 概念の理解と手助け
- Docker Machine ドライバ・リファレンス
- Docker Machine サブコマンド・リファレンス
- Docker Machine で Swarm クラスタをプロビジョン
参考
- Use Docker Machine to provision hosts on cloud providers
- https://docs.docker.com/machine/get-started-cloud/