Docker Machine 概要¶
Docker Machine を使いますと、以下の操作ができます。
- Mac や Windows 上に Docker をインストール・実行
- 複数のリモート Docker ホストを構築・管理
- Swarm クラスタの構築(プロビジョン)
Docker Machine とは何ですか?¶
Docker Machine は仮想マシン上に Docker Engine をインストールするツールであり、 docker-machine
コマンドを使ってホストを管理します。Machine を使えば、自分のローカルの Mac や Windows 上に Docker ホストを作れるだけでなく、あなたの会社のネットワーク上や、データセンターや、AWS や Digital Ocean のようなクラウド・プロバイダ上でも作れます。
docker-machine
コマンドで、管理ホストの起動(start)、調査(inspect)、停止(stop)、再起動(restart)ができます。他にも Docker クライアントとデーモンの更新や、Docker クライアントが対象のホストへ接続できるような設定もできます。
Machine のコマンドライン上で管理対象のホストを参照するように指定したら、 docker
コマンドが対象ホストを直接管理します。例えば、 docker-machine env default
を実行したら、操作対象のホストは default
という名前のホストにするため、画面上に env
コマンドの指示が表示されます。これを使ってセットアップしたあとは、 docker ps
や docker run hello-world
コマンドなど、指定したホスト上で直接処理できます。
なぜ使うべきですか?¶
Mac や Windows 上では、Docker Machine を使うのが Docker を実行する唯一の方法です。そして、様々な Linux で動作するリモート Docker ホストを複数プロビジョンするのにも、ベストの方法です。
Docker Machine は主に2つの使い方があります。
- Mac や Windows 上で Docker を実行したい
主に Mac や Windows をノート PC 上で動かす場合は、「Dockerを実行」するために(つまり Docker Engine を動かすために) Docker Machine をローカルにインストールする必要があります。Mac や Windows 環境上で Docker Machine を使えば、ローカルに Docker Engine が動く仮想マシンをプロビジョニングします。そして、その環境に接続したら、dockerコマンドを実行可能になります。
- リモート・システム上に Docker ホストをプロビジョンしたい
Docker Engine は Linux システム上でネイティブに動きます。主な利用環境が Linux であれば、 docker
コマンドを実行したい場合に必要になるのは Docker Engine のダウンロードとインストールです。それだけでなく、ネットワーク上で複数の Docker ホストを効率的にプロビジョン(訳者注:自動的な環境構築)したい場合、それがクラウドでも、ローカル環境でも実現したいのであれば、Docker Machine が必要になるでしょう。
Docker Machine をインストールしたら、Mac ・ Windows ・ Linux 環境を問わず docker-machine
コマンドを使って多くの Docker ホストのプロビジョンと管理ができます。Docker Machine は自動的にホストを作成し、そこに Docker Engine をインストールし、 docker
クライアントの設定を行います。管理対象の各ホスト(「 マシン 」)が Docker ホストと設定済みのクライアントを結び付けます。
Docker Engine と Docker Machine の違いは何ですか?¶
一般的に「Docker」と呼ばれるのは Docker Engine を意味します。Docker デーモンはクライアント・サーバ型アプリケーションです。デーモンは特定の REST API インターフェースとコマンド・ライン・インターフェース(CLI)で、デーモンと通信します(正確には、REST API ラッパーを経由します)。Docker Engine は CLI からの docker
コマンドを受け付けます。 docker run <イメージ名>
や docker ps
でのコンテナ実行や、 docker images
でイメージの一覧などを処理します。
Docker Machine は Docker ホスト(Docker Engine が動くホスト環境)のプロビジョニングと管理用のツールです。一般的には Docker Machine を自分のローカルシステム上にインストールします。Docker Machine とは docker-machine
というコマンド・ラインのクライアントと docker
という名称の Docker Engine クライアントです。Docker Machine を使えば仮想システム上に Docker Engine をインストールできます。仮想システムとはローカル(Machine を使い、Mac または Windows 上の VirtualBox に Docker Engine をインストール、実行します)でも、リモート(Machine を使い、クラウド・プロバイダ上に Docker をプロビジョン)でも構いません。Docker に対応したホストであれば、何でも常に 「 マシン 」として管理できるのです(訳者注:Docker Machine の管理対象のホストは、ローカルでもクラウド上でも「マシン」という概念で抽象化できる、という意味です)。
次はどこへ行きますか?¶
- Docker Machine のインストール
- machine を ローカルの VirtualBox を使ったシステム にインストール
- 複数の machine を クラウド・プロバイダ にインストール
- Docker Machine で Swarm クラスタ構築
- Machine の概念に対する理解とヘルプを得る
- Docker Machine ドライバ・リファレンス
- Docker Machine サブコマンド・リファレンス
- Boot2Docker から Docker Machine への移行
参考
- Docker Machine Overview
- https://docs.docker.com/machine/overview/