Docker, docker-machine, generic

Управление Docker с локальной машины. Используем docker-machine. Можно управлять неограниченным количеством виртуальных или реальных хостов. Можно подключить уже настроенную машину или подключиться и настроить окружение Docker. Если Docker не установлен на управляемой машине он будет установлен.

  • Если Docker нет не подключаемом хосте, он будет установлен автоматически
  • Пакеты Docker будут обновлены ( apt update, yum update, ...)
  • Созданы сертификаты для docker daemon
  •  Если хост использует systemd, то будет создан /etc/systemd/system/docker.service.d/10-machine.conf
  • docker будет перезапущен, это остановит все запущенные контейнеры
  • имя хоста будет изменено на в соответствие с указанным именем машины (/еtc/hostname). Это важно если вы подключаетесь к существующему серверу.

Пример подключения к существующему серверу (deploy)

docker-machine create \
	--driver generic \
	--generic-ssh-user=<ssh user> \
	--generic-ip-address=<xxx.xxx.xxx.xxx> \
    --generic-ssh-key ~/.ssh/id_rsa \
    deploy

Пользователь от имени которого от имени которого подключаемся по ssh должен иметь возможность выполнять sudo без пароля.

После успешной настройки можно выполнять команды

docker-mashine ps deploy

можно настроить окружение локального терминала на выполнение команд на определенно машине

# посмотреть переменные окружения для настройки
docker-mashine env machine-name

# применить настройки к текущему терминалу
eval $(docker-machine env deploy)

# посмотреть имя активной машины
docker-mashine active

после установки окружения, все docker-команды будут выполнятся на активной машине, то есть docker ps будет выполнен не на локальном демоне, а на удаленном сервере.