2016-02-03 2 views
2

Я сделал успешный 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

Да, я, конечно, обнаружил, что «по умолчанию» это действительно местный. Теперь мне просто нужно знать, как сделать его нелокальным, чтобы я мог предоставить удаленное управление. Я нигде не нашел никакой документации.

Любые идеи?

ответ

1

Я не нашел документации для этого в любом месте.

Ну, это, вероятно, потому, что «докер на окнах» - это просто хак, предназначенный только для локального развития на одной коробке.

Все, кто работает в Docker (т. Е. Люди, которым нужны несколько ящиков), просто запускают Docker непосредственно на Linux без дополнительных виртуальных машин. Все технологии оркестровки (Kubernetes и т. Д.) Предполагают, что сервер Docker имеет маршрутизируемый IP-адрес.

Возможно, эта проблема меньше о Docker и больше о VirtualBox.

Исправить. Вы можете «исправить» свою проблему exposing your VM's port 2376 в вашей сети. Возможно, вам также придется разрешить этот порт в брандмауэре Windows.

0

Update: Если вы используете сервер для Windows 2016, вы можете попробовать включить пульт дистанционного управления с помощью от here

Надежда детали Issue 109 на Microsoft Docker.Dotnet помогает

Выписка из выше ссылка как ниже

Docker for Windows использует именованный канал npipe:////./pipe/docker_engine для доступа к API REST. Вам нужно сопоставить трубку с портом tcp.

Это может быть сделано с socat:

socat TCP-LISTEN:2375,reuseaddr,fork PIPE:\\.\pipes\docker_engine

После запуска Сокат карты можно подключить с помощью

tcp://localhost:2375

Подробнее по этому вопросу here.

Сообщите мне, если это помогает

Смежные вопросы