Докер для Windows не работает
Я установил Docker toolbox сейчас, и я получаю ошибку для всего:
Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectExtcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
docker version выход:
Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:49:29 UTC 2015
OS/Arch: windows/amd64
Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
но виртуальная машина работает под VirtualBox. Я искал везде но не могу найти решение.
обновление 1: Я использую Windows 8.1, а также попытался начать через кинематический также.
UPDATE2: все работало как шарм, когда я попробовал Virtualbox Test Build 5.0.3 или более поздней версии. Вы можете скачать здесь: https://www.virtualbox.org/wiki/Testbuilds
17 ответов:
просто запустите:
"C:\Program Files\Docker Toolbox\docker-machine" lsполучить имя машины, а затем выполните:
"C:\Program Files\Docker Toolbox\docker-machine" env <MACHINE_NAME_HERE> --shell=[cmd|powershell]и вы должны получить что-то вроде этого:
"C:\Program Files\Docker Toolbox\docker-machine" env default --shell=cmd set DOCKER_TLS_VERIFY=1 set DOCKER_HOST=tcp://192.X.X.X:2376 set DOCKER_CERT_PATH=C:\Users\X\.docker\machine\machines\default set DOCKER_MACHINE_NAME=default # Run this command to configure your shell: # copy and paste the above values into your command promptЯ также получаю сообщение об ошибке
open C:\Users\X\.docker\machine\machines\default\server.pem: The system cannot find the file specified.и решил его, обновив мой VirtualBox до версии 5.0.3 (от их ночные сборки)версия:
я получил ту же проблему, а после и "используя Докер из командной строки Windows (cmd.exe) в разделе" От руководство по установке поставить меня в правильном направлении
в основном, способ работы docker заключается в том, что команды "docker" передаются службе docker (работает на порту 2375). Поскольку вы запускаете docker с хоста windows, служба фактически работает на хосте linux, созданном docker (вы можете увидеть его, открыв пользовательский интерфейс virtualbox).
обычный поток следующий:
- по умолчанию машина создана
- в стартер (kinamatic / "Docker Quickstart Terminal" / cmd) машины ждет загрузки машины, получает ее IP-адрес и устанавливает linux ip:port в качестве адреса службы (вместо 127.0.0.1:2375) в нескольких переменных enviremnt/powershell
- С этого момента все
docker ...команды отправляются на хост linux, и все работает почти как родной linuxпроблема в том, что есть некоторые проблемы с настройкой машины (я предполагаю, что новый виртуальный ящик, но я не уверен, и есть время копаться в нем). Вы можете видеть, что по runnung
lsкоманда и обратите внимание, что (по крайней мере, в моем случае) состояние машины - "тайм-аут" и нет url-адреса, в отличие от вывода, показанного в руководстве.это приводит к тому, что значения окружения не задаются, а
docker ...команды на провал.помимо выполнения команды, вы также можете начать
Docker Quickstart Terminalэто делает то же самое, но с SH shellв отношении ошибка сертификата, я попытался восстановить сертификаты из виртуальной машины с помощью:
/usr/local/bin/generate_cert --overwrite --host=default,127.0.0.1,10.0.2.15,192.168.99.100 --ca=/var/lib/boot2docker/tls/ca.pem --ca-key=/var/lib/boot2docker/tls/cakey.pem --cert=/var/lib/boot2docker/tls/server.pem --key=/var/lib/boot2docker/tls/serverkey.pemя получил "ошибку протокола", когда попытался скопировать сертификат на хост - машину, что напомнило мне старую ошибку общих папок virtualbox, поэтому это может быть не проблема с docker, а с virtualbox-я обновился до последней ночной версии (5.0.3-102224), восстановил образ по умолчанию и, похоже, решил ее. Поскольку windows 10 официально еще не поддерживается docker или virtualbox, я не уверен, что это то же самое, что заставляет вас получать ошибку сертификата, в любом случае может попытаться скопировать сертификаты из виртуальной машины (у вас есть пути в блоке кода) в ваш локальный каталог пользователя (он сопоставлен с /c/Users/X/ в виртуальной машине)
следующее работало для меня (Docker Toolbox 1.8.1 b и Windows 7). Это упрощенная версия того, что @baptiste-gaillard изложил в комментариях выше. Короткий ответ: используйте VirtualBox 5.03 или более позднюю версию с самого начала.
- загрузите VirtualBox 5.03 (ночная сборка во время этого сообщения) и пакет расширений.
- перезагрузить ноутбук. (Очищает запущенный материал VirtualBox.)
- установите VirtualBox 5.03 и пакет расширения 5.03.
- удалить по умолчанию VM полностью (удалить файлы).
- повторно запустите ярлык терминала быстрого запуска Docker для создания виртуальной машины по умолчанию.
сценарий быстрого запуска, кажется, лучше ладит с VirtualBox 5.03 в отношении создания необходимых ключей TLS.
была та же проблема, что и вы показали, и просто исправили ее несколько часов назад.
все, что нужно сделать, это отключить Hyper-V. Запустите командную строку с права администратора и выполните следующую команду:
bcdedit /set hypervisorlaunchtype offперезагрузите компьютер, откройте virtualbox и удалите виртуальную машину по умолчанию после перезапуска, вернитесь к терминалу быстрого запуска docker и введите следующую команду:
docker run hello-worldи ты молодец! Надеюсь, это решит вашу проблему
это работает для меня
1) сначала запустите инструмент командной строки и получите ip-адрес машины, запустив
докер-машина ls команда
2) перегенерировать сертификаты докер-машина регенерации-сертификаты
3) Установите переменные evn вручную в моем случае расположение сертификатов было другим
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp: / / machine_IP: 2376
set DOCKER_CERT_PATH=C:\Users\X. docker\machine\certs
set DOCKER_MACHINE_NAME=default
теперь бегите настройки версии
вот вывод в моем случае
клиент: Версия: 1.8.1 Версия API: 1.20 GO версия: go1.4.2 Git commit: d12ea79 Построено: Чт 13 авг 02:49:29 UTC 2015 ОС / Arch: windows / amd64
сервер: Версия: 1.8.1 Версия API: 1.20 GO версия: go1.4.2 Git commit: d12ea79 Построено: Чт 13 авг 02:49:29 UTC 2015 OS / Arch: linux / amd64
панель инструментов Docker (в 1.8.x) установка по умолчанию Демон Docker должен использовать безопасное соединение по протоколу TLS (версия 1.8).
Если вы использовали старую версию демона, которая не была защищена, это означает, по крайней мере, две вещи : - номер порта изменился с 2375 на 2376 - ваш демон клиент должен представить сертификат для связи с вами docker engine / server.
таким образом, ответ sandiindia указывает на переменные среды это точно для клиента docker хорошая конфигурация для подключения к серверу/движку docker:
#You're using a TLS secured daemon : set DOCKER_TLS_VERIFY=1 # Precise the Docker Host IP and port, the TLS default is 2376 set DOCKER_HOST=tcp://*<docker_host_IP>*:2376 # The paths to the certificate and client key needed to authenticate to the daemon # You should have 3 files in this directory : ca.pem, cert.pem and key.pem # In my case the default path looks like : set DOCKER_CERT_PATH=C:\Users\*<username>*\.docker\machine\machines\default #the name of your Docker Host VM : set DOCKER_MACHINE_NAME=defaultдокументация docker о конфигурации TLS : https://docs.docker.com/articles/https/
надеюсь, это поможет ;)
у меня тоже была такая же проблема, но я смог решить ее без необходимости вводить что-либо в командной строке, она просто работала из коробки.
оказывается, несколько шагов инициализации отсутствовали, как указано в принятом ответе выше. Почему установка Docker по умолчанию уже не делала этого? У меня также отсутствовали сертификаты. Итак, я удалил все и заново с нуля. Однако, после завершения установки, на этот раз вокруг не открывайте Докер быстрый запуск терминала во-первых, откройте Kitematic вместо того, чтобы сделать первую инициализацию для вас.
Kitematic создал сертификаты для меня, установил отсутствующие переменные env, а затем я открыл терминал быстрого запуска Docker. Я набрал
docker run hello-world, потомdocker versionи на этот раз он работал, как ожидалось, без сообщений об ошибках.обратите внимание, что это не сработало, когда я сначала открыл терминал быстрого запуска.
Я тестирую Docker внутри VMWare 10 экземпляров и я смог дублировать эту проблему и ее решение (обходной путь) в каждом случае.
Я надеюсь, что это помогает.
я исправил свою проблему, просто удалив виртуальную машину по умолчанию в диспетчере VirtualBox, перезагрузив компьютер (на всякий случай), а затем повторно запустив терминал быстрого запуска Docker. Вот и все.
настройки 1.8.2 и виртуальный Box 5.0.4
Close the virtual machine from Virtual Box (you don't have to delete it) Close Kitematic Close Docker Quickstart Terminalтеперь сделайте это по порядку:
Open Kitematic Open Docker Quickstart Terminalего важно не откройте терминал быстрого запуска Docker перед Kitematic, так как Kitematic инициализирует вещи для терминала быстрого запуска Docker
мне не нужно было выполнять какую-либо командную строку..
Я надеюсь, что это поможет какой-то орган..
- обновление до последней виртуальной коробки выше 5.0.3
- перезагрузить систему
- откройте виртуальную коробку и удалите виртуальную машину по умолчанию
- откройте терминал быстрого запуска docker
- run
docker run hello-worldи вы сделали.
удалить и удалить все старые машины в. на вашем ноутбуке: 1. Откройте VirtualBox, щелкните правой кнопкой мыши на 'default', удалить,'удалить все файлы'. 2. Командная строка (Запуск от имени администратора)> docker-machine rm default
удалите Virtualbox, Docker toolbox и Git. Перейдите к c:\Users\Vinita, и удалить dirs. .докер И.версия VirtualBox CClean файлы и реестр. Перезагрузить.
очистка завершена.
I. загрузите последнюю версию Docker tools для windows (1.10.2) из Docker Ящик для инструментов Щелкните правой кнопкой мыши на загруженном файле и "запуск от имени администратора" Это позволит установить - настройки краткое руководство, Kitematic и VirtualBox.
второй. Скачать последнюю тестовую сборку для VirtualBox (5.01.15-105696-выиграть.exe) с Testbuilds-Oracle VM VirtualBox . Снова запустите от имени администратора.
(вы можете игнорировать любые предупреждения и перезаписать уже установленный Docker VirtualBox).
пока ничего из ряда вон выходящего. Мы только что установили программное обеспечение с админ права. Теперь Панель управления>Центр управления сетями и общим доступом>изменить настройки адаптера: Щелкните правой кнопкой мыши VirtualBox Host-Only Network #2 для свойств. проверить > VirtualBox Ndis6 Мостовой сетевой драйвер. (Если он уже установлен, снимите флажок и проверьте еще раз.)
вы сделали. Это единственное исправление, которое мы использовали!
оба Kitematic и Docker Quickstart должны работать сейчас.
щелкните правой кнопкой мыши на Kitematic и запустите от имени администратора в первый раз. Проверено на Windows 10.
Это произошло несколько раз для меня на Windows 10 с VirtualBox 5.0.14.
похоже, это связано с неправильным отключением VirtualBox (я считаю) - например, отключение питания!
завершение работы виртуальных машин Docker
Закрыть Kitematic
запустите терминал быстрого запуска Docker
введите в терминале:
докер-машина.exe-D ls
- Запуск Kitematic. ВМ появился сейчас.
Если это не сработает, повторите попытку 1-3 и на этот раз попробуйте восстановить сертификаты. Затем выполните шаг 4.
одно странно, что в терминале
docker imagesне перечислить их, но говорит, что он не может подключиться к 127.0.0.1:2375 (ноdocker-machine lsпоказывает машину по умолчанию, работающую на 192.168.99.100: 2376).
я столкнулся с точно такой же ошибкой при запуске docker images после перезагрузки системы. Я использовал docker версии 1.10 на Windows 7 64 бит с virtualbox 5.0.10 и mintty (терминал поставляется с Git для Windows)
выполнения докер-машина ls показал мне, что виртуальная машина находится в состоянии таймаута.
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default virtualbox TimeoutПоэтому я перезапустил виртуальную машину$ docker-machine restart defaultЗатем перечислите статус еще раз сказал мне, что сертификат привязан к неправильному адресу:$ docker-machine ls Unable to query docker version: Get https://192.168.56.101:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.56.101Тогда Я перегенерировать сертификат$ docker-machine regenerate-certs defaultи, наконец,$ eval $(docker-machine env default --shell=bash)Тогда докер снова работает!
просто воссоздайте машину по умолчанию, а затем запустите
docker-machine env defaultэто работает для меня.
с Docker 1.8.1 d была та же проблема, удалив 1.8.1 c. в конечном итоге Исправлена проблема путем установки последней виртуальной коробки (5.0.18), перезагрузки при появлении запроса и запуска Kitematic. Kitematic сначала терпит неудачу и предлагает возможность удалить и переустановить виртуальную машину, которую я сделал. После этого мой быстрый терминал был в порядке.
Если вы используете docker для windows (бета-версия) выполните следующие действия:
- отключить сетевой адаптер "DockerNAT"
- запустите "сброс к заводским настройкам" через Панель задач / докер / Настройки / Сброс к заводским настройкам"
Это звучит как проблема с виртуальной коробке, В моем случае, я выполнил следующие шаги, чтобы решить проблему
- Stop Docker machine by 'docker-machine stop'
- открыть Центр управления сетями и общим доступом в ОС Windows
- Нажмите кнопку Изменить настройки адаптера
- отключить VirtualBox-Host Only Network
- Start Docker machine by 'docker-machine start'
мой вопрос был "...ошибка получения IP-адреса " спасибо всем людям здесь, которые внесли свои решения, которые я прочитал и выполнил следующие шаги:
Закрыть Окно
Открыть VirtualBox Manager
удалить VM по умолчанию
сначала запустите Kitematic (я думаю, что это важно)
Start Docker
Comments