Я сделал успешный Docker for Windows install на двух компьютерах Windows (Windows 10 и Windows 7 x64 SP1). Я могу успешно выполнять административные обязанности хостов докеров через терминальные службы (RDP) или через удаленный пуск PowerShell.Не удается настроить удаленный доступ к серверу докеров
Однако документация Docker указывает, что Docker Host предлагает свой собственный RESTful remote api для администрирования. Я хотел бы использовать этот API. Проблема в том, что во всех примерах, приведенных в документации, клиентские вызовы (через curl
) физически находятся в том же поле, что и Docker Host. Другими словами, они фактически не удаленных и, к сожалению, шаги по адаптации к удаленному сценарию не очевидны.
Для примера рассмотрим эту команду, взятая прямо из документации:
локон --insecure --cert ~/.docker/cert.pem --key ~/.docker/key.pem https://YOUR_VM_IP:2376/images/json
Очевидно, мне нужен YOUR_VM_IP
, чтобы продолжить. Итак, на обоих моих ящиках Windows я печатаю docker-machine ls
. Я обнаружил, что на и физическими машинами Windows адрес для хоста Docker tcp://192.168.99.100:2376
.
К сожалению. Они не могут оба имеют одинаковый IP-адрес. Очевидно, что NAT-адрес VirtualBox является локальным для виртуальной машины в обоих случаях.
Это основная проблема. Я хотел бы знать, как выставить видимый извне внешний IP-адрес Docker Host, чтобы я мог фактически выполнить удаленный adminstration.
Возможно, эта проблема меньше о Docker и больше о VirtualBox. Существует несколько сетевых интерфейсов и сетевых режимов, на которые может быть сконфигурирована VM хоста Docker (например, NAT, Bridge, Internal, Host Only. Возможно, какая-то комбинация позволила бы открыть IP-адрес виртуальной машины Docking Host.
Или нет Другая возможность заключается в том, что я просто неправильно понимаю, что Docker означает «удаленный API». Возможно, «удаленный» просто означает, что мне не нужно напрямую подключать SSH к Docker Host, от главной машины, чтобы выполнить Однако я не думаю, что я недопонимаю, особенно когда вижу такие цитаты:
По умолчанию демон может принимать только локальные подключения через домен Unix, поэтому cket. Взято из: Docker Machine Basics
Да, я, конечно, обнаружил, что «по умолчанию» это действительно местный. Теперь мне просто нужно знать, как сделать его нелокальным, чтобы я мог предоставить удаленное управление. Я нигде не нашел никакой документации.
Любые идеи?