Правило принятия решения использовать Docker-машину или нет при запуске Docker - PullRequest
0 голосов
/ 19 февраля 2019

Когда я использую docker-machine в среде Windows (устанавливается с помощью docker-toolbox), каждая команда docker run использует этот docker-machine в качестве демона docker.Однако, когда я использую docker-machine в среде Linux, в которой установлен собственный демон docker, установленный вместе с docker-machine, команда docker run использует собственный демон docker, даже если есть работающий экземпляр docker-machine.

Вопросы:

  • Как команда docker run решает, какой демон использовать?
  • Есть ли какой-нибудь метод для вывода списка запущенных контейнеров на экземпляре Docker-машины?

Что касается второго, я знаю, что могу подключиться к экземпляру Docker-машины по SSH и запросить в нем docker ps, но я хочу проверить его извне экземпляра.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Стек Docker Machine работает, запуская виртуальную машину, а затем устанавливая переменную окружения DOCKER_HOST для указания на нее.В частности, он также выполняет необходимую настройку для TLS-шифрования соединения и для настройки сертификата клиента TLS для аутентификации вызывающего абонента.(Без этой настройки удаленный DOCKER_HOST чрезвычайно опасен.)

Итак: docker run и любая другая команда Docker использует переменную окружения DOCKER_HOST, чтобы решить, где запускать вещи.Если DOCKER_HOST указывает на виртуальную машину Docker Machine, docker ps перечислит там контейнеры;вам обычно не нужно docker-machine ssh (хотя это полезный инструмент, когда он вам действительно нужен).

На нативном хосте Linux гораздо проще просто напрямую использовать локальный демон Docker.Если у вас есть и локальный демон, и виртуальная машина с докером, вы можете

# switch to the Docker Machine VM
eval $(docker-machine env default)

# switch back to the host Docker
eval $(docker-machine env -u)
...