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 を実行したい
(ToDo: イメージの追加)
主に Mac や Windows をノート PC 上で動かす場合は、「Dockerを実行」するために(つまり Docker Engine を動かすために) Docker Machine をローカルにインストールする必要があります。Mac や Windows 環境上で Docker Machine を使えば、ローカルに Docker Engine が動く仮想マシンをプロビジョニングし、そこに接続できるので、 docker
コマンドが実行可能になります。
- リモート・システム上に Docker ホストをプロビジョンしたい
(ToDo: イメージの追加)
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 エンジンは 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/