Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Даже в отсутствие docker-machine
можно создать удаленный узел Docker на виртуальной машине Windows Server.
Ниже приведены действия.
- Создайте сертификаты на сервере с помощью dockertls. Если вы создаете сертификаты с IP-адресом, вы можете рассмотреть статический IP-адрес, чтобы избежать необходимости повторно создавать сертификаты при изменении IP-адреса.
- Перезапустите службу Docker
Restart-Service Docker
- Сделайте TLS-порты Docker 2375 и 2376 доступными, создав правило NSG, разрешающее входящий трафик. Обратите внимание, что для безопасных подключений необходимо разрешить только 2376.
На портале должна отображаться конфигурация NSG следующим образом:
- Разрешить входящий трафик через брандмауэр Windows.
New-NetFirewallRule -DisplayName 'Docker SSL Inbound' -Profile @('Domain', 'Public', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2376
- Скопируйте файлы
ca.pem
, cert.pem и key.pem из папки docker пользователя на компьютере, напримерc:\users\chris\.docker
на локальный компьютер. Например, можно использовать ctrl-c и ctrl-v для копирования и вставки файлов из сеанса RDP. - Убедитесь, что вы можете подключиться к удаленному узлу Docker. Бежать:
docker -D -H tcp://wsdockerhost.southcentralus.cloudapp.azure.com:2376 --tlsverify --tlscacert=c:\
users\foo\.docker\client\ca.pem --tlscert=c:\users\foo\.docker\client\cert.pem --tlskey=c:\users\foo\.doc
ker\client\key.pem ps
Устранение неполадок
Попробуйте подключиться без TLS, чтобы определить правильность параметров брандмауэра NSG
Ошибки подключения обычно проявляются в таких ошибках:
error during connect: Get https://wsdockerhost.southcentralus.cloudapp.azure.com:2376/v1.25/version: dial tcp 13.85.27.177:2376: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Разрешить незашифрованные подключения, добавив
{
"tlsverify": false,
}
выполнить c"\programdata\docker\config\daemon.json
, а затем перезапустить службу.
Подключитесь к удаленному узлу с помощью командной строки, например:
docker -H tcp://wsdockerhost.southcentralus.cloudapp.azure.com:2376 --tlsverify=0 version
Проблемы с сертификатом
Доступ к узлу Docker с сертификатом, не созданным для IP-адреса или DNS-имени, приведет к ошибке:
error during connect: Get https://w.x.y.c.z:2376/v1.25/containers/json: x509: certificate is valid for 127.0.0.1, a.b.c.d, not w.x.y.z
Убедитесь, что w.x.y.z — это DNS-имя общедоступного IP-адреса узла, и что это DNS-имя совпадает с общим именем сертификата , которое было задано переменной среды SERVER_NAME
, или с одним из IP-адресов, указанных в переменной IP_ADDRESSES
, предоставленной dockertls.
Предупреждение crypto/x509
Возможно, вы получаете предупреждение
level=warning msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
Предупреждение безвредно.