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: Отобразить справочную информацию
Другие расширения