Докер для 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

1235   17  

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).

обычный поток следующий:

  1. по умолчанию машина создана
  2. в стартер (kinamatic / "Docker Quickstart Terminal" / cmd) машины ждет загрузки машины, получает ее IP-адрес и устанавливает linux ip:port в качестве адреса службы (вместо 127.0.0.1:2375) в нескольких переменных enviremnt/powershell
  3. С этого момента все 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 или более позднюю версию с самого начала.

  1. загрузите VirtualBox 5.03 (ночная сборка во время этого сообщения) и пакет расширений.
  2. перезагрузить ноутбук. (Очищает запущенный материал VirtualBox.)
  3. установите VirtualBox 5.03 и пакет расширения 5.03.
  4. удалить по умолчанию VM полностью (удалить файлы).
  5. повторно запустите ярлык терминала быстрого запуска 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

мне не нужно было выполнять какую-либо командную строку..

Я надеюсь, что это поможет какой-то орган..

  1. обновление до последней виртуальной коробки выше 5.0.3
  2. перезагрузить систему
  3. откройте виртуальную коробку и удалите виртуальную машину по умолчанию
  4. откройте терминал быстрого запуска docker
  5. 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 (я считаю) - например, отключение питания!

  1. завершение работы виртуальных машин Docker

  2. Закрыть Kitematic

  3. запустите терминал быстрого запуска Docker

  4. введите в терминале:

докер-машина.exe-D ls

  1. Запуск 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-адреса " спасибо всем людям здесь, которые внесли свои решения, которые я прочитал и выполнил следующие шаги:

  1. Закрыть Окно

  2. Открыть VirtualBox Manager

  3. удалить VM по умолчанию

  4. сначала запустите Kitematic (я думаю, что это важно)

  5. Start Docker

Comments

    Ничего не найдено.