Docker Machine
Docker Machine был ранним инструментом Docker для создания и управления хостами Docker, но с развитием Docker Desktop, Terraform и Kubernetes он выполнил свою историческую миссию и был полностью заменён.
Docker Desktop в сценариях локальной разработкиПолная заменазаменил Docker Machine, который больше не подходит для практического использования.
| Пункт сравнения | Docker Machine | Docker Desktop |
|---|---|---|
| Позиционирование продукта | Инструмент создания и управления хостом Docker | Локальная интегрированная среда разработки Docker |
| Основное назначение | Создание виртуальной машины и установка Docker Engine | Запуск Docker напрямую локально |
| Типичный период использования | Ранний Docker (1.x ~ 18.x) | Текущий мейнстрим |
| Поддержка macOS / Windows | Косвенная (зависит от VirtualBox) | Нативная поддержка |
| Требуется ли дополнительное программное обеспечение для виртуализации | Да (VirtualBox / VMware) | Нет (встроенный) |
| Управление Docker Engine | Ручное/полуавтоматическое | Полностью автоматическое |
| Сложность использования | Высокая | Низкая |
| Наличие графического интерфейса | нет | Да |
| Поддержка Kubernetes | Не поддерживается | Встроенный (опционально) |
| Управление несколькими Docker-хостами | Поддерживается | Не поддерживается (акцент на автономной машине) |
| Подходит для продуктивных сред | Не подходит | Не подходит |
| Официальный статус поддержки | Обновление практически остановлено | Постоянно активен |
| Текущая рекомендация | ❌ Не рекомендуется | ✅ Настоятельно рекомендуется |
Введение
Docker Machine — это инструмент, который позволяет устанавливать Docker на виртуальные хосты, а также управлять хостами с помощью команды docker-machine.
Docker Machine также может централизованно управлять всеми хостами Docker, например, быстро устанавливать Docker на 100 серверов.

Виртуальные хосты, управляемые 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
Использование
В этой главе описывается использование docker-machine через VirtualBox. Операции для других облачных провайдеров в основном такие же. Подробности см. в документации каждого провайдера.
1. Список доступных машин
Видно, что сейчас здесь есть только виртуальная машина по умолчанию.
$ 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: Использовать scp для удалённого копирования данных между хостами Docker и между хостом Docker и локальным хостом
- mount: Использовать SSHFS для монтирования или размонтирования каталогов с компьютера
- start: Запустить указанный хост Docker. Если объект является виртуальной машиной, виртуальная машина будет запущена.
- status: Получить статус указанного хоста Docker (включая: Running, Paused, Saved, Stopped, Stopping, Starting, Error) и т. д.
- stop: Остановить указанный хост Docker.
- upgrade: Обновить версию Docker указанного хоста до последней
- url: Получить URL прослушивания указанного хоста Docker.
- version: Отображает версию Docker Machine или версию Docker на хосте.
- help: Отобразить справочную информацию




