Docker Machine
Docker Machine は、Docker が初期に Docker ホストを作成・管理するために生み出したツールですが、Docker Desktop、Terraform、Kubernetes の成熟に伴い、その歴史的使命を終え、全面的に代替されました。
Docker Desktop はローカル開発環境において完全に代替Docker Machine を置き換え、実際の使用には適さなくなりました。
| 比較項目 | Docker Machine | Docker Desktop |
|---|---|---|
| 製品の位置付け | Docker ホスト作成・管理ツール | ローカル Docker 一体型開発環境 |
| 主な用途 | VM を作成し Docker Engine をインストール | ローカルで直接 Docker を実行 |
| 代表的な使用時代 | Docker 初期(1.x 〜 18.x) | 現在の主流 |
| macOS / Windows サポート | 間接的(VirtualBox に依存) | ネイティブサポート |
| 追加の仮想化ソフトウェアが必要か | 必要(VirtualBox / VMware) | 不要(内蔵) |
| Docker Engine 管理 | 手動 / 半自動 | 全自動 |
| 使用の複雑さ | 高 | 低 |
| GUI の提供 | 否 | である |
| Kubernetes サポート | サポートなし | オプションで内蔵 |
| 複数 Docker ホスト管理 | サポート | サポートなし(単一マシン向け) |
| 本番環境への適合 | 不向き | 不向き |
| 公式メンテナンス状況 | 基本的に更新停止 | 継続的に活発 |
| 現在の推奨度 | ❌ 非推奨 | ✅ 強く推奨 |
概要
Docker Machine は、仮想ホストに Docker をインストールできるツールであり、docker-machine コマンドを使ってホストを管理することができます。
Docker Machine はすべての Docker ホストを集中管理することもでき、例えば 100 台のサーバーに素早く Docker をインストールできます。

Docker Machine が管理する仮想ホストは、ローカルマシン上のものでも、クラウドプロバイダー(例:Alibaba Cloud、Tencent Cloud、AWS、DigitalOcean)のものでも構いません。
docker-machine コマンドを使用すると、管理対象ホストの起動、確認、停止、再起動ができ、Docker クライアントとデーモンのアップグレード、さらに Docker クライアントとホスト間の通信設定も行えます。

インストール
Docker Machine をインストールする前に、Docker をインストールする必要があります。
Docker Machine は、Linux、macOS、Windows を含む複数のプラットフォームにインストールして使用できます。
Linux インストールコマンド
$ base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
macOS インストールコマンド
$ base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
Windows インストールコマンド
Windows プラットフォームの場合は、次を使用できますGit BASH以下のコマンドを入力します:
$ base=https://github.com/docker/machine/releases/download/v0.16.0 && mkdir -p "$HOME/bin" && curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && chmod +x "$HOME/bin/docker-machine.exe"
インストールが成功したか確認する:
$ docker-machine version docker-machine version 0.16.0, build 9371605
注意:各バージョンの更新ログにもインストール方法が記載されています:https://github.com/docker/machine/releases
使用方法
この章では、virtualbox を使って docker-machine の使用方法を紹介します。他のクラウドサービスプロバイダーでも操作は基本的に同じです。詳細は各プロバイダーのガイドドキュメントを参照してください。
1. 利用可能なマシンを一覧表示
現時点では、デフォルトの default 仮想マシンのみが存在することがわかります。
$ docker-machine ls
2. マシンを作成
test という名前のマシンを作成します。
$ docker-machine create --driver virtualbox test
- --driver:マシン作成に使用するドライバータイプを指定します。ここでは virtualbox です。
3. マシンのIPを確認
$ docker-machine ip test
4. マシンを停止
$ docker-machine stop test
5. マシンを起動
$ docker-machine start test
6. マシンに入る
$ docker-machine ssh test
docker-machine コマンドパラメータの説明
-
docker-machine active:現在アクティブな Docker ホストを確認します。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL dev - virtualbox Running tcp://192.168.99.103:2376 staging * digitalocean Running tcp://203.0.113.81:2376 $ echo $DOCKER_HOST tcp://203.0.113.81:2376 $ docker-machine active staging
- config:現在アクティブな Docker ホストの接続情報を確認します。
- create:Docker ホストを作成します
- env:特定のホストへの接続に必要な環境変数を表示します
- inspect:指定した Docker の詳細情報を JSON 形式で出力します
- ip:指定した Docker ホストのアドレスを取得します
- kill:指定した Docker ホストを直接強制終了します
- ls:すべての管理ホストを一覧表示します
- provision:指定したホストを再設定します
- regenerate-certs:特定のホストの TLS 情報を再生成します
- restart:指定したホストを再起動します
- rm:特定の Docker ホストを削除します。対応する仮想マシンも削除されます
- ssh:SSH でホストに接続し、コマンドを実行します
- scp:Docker ホスト間、および Docker ホストとローカルホスト間で scp によりデータをリモートコピーします
- mount:SSHFS を使用してコンピューターからディレクトリをマウントまたはアンマウントします
- start:指定した Docker ホストを起動します。対象が仮想マシンの場合、その仮想マシンが起動されます
- status:指定した Docker ホストの状態を取得します(Running、Paused、Saved、Stopped、Stopping、Starting、Error などを含む)
- stop:指定した Docker ホストを停止します
- upgrade:指定したホストの Docker バージョンを最新に更新します
- url:指定した Docker ホストのリッスン URL を取得します
- version:Docker Machine のバージョンまたはホストの Docker バージョンを表示します
- help:ヘルプ情報を表示します




