Machine: Ошибка создания машины с последней версией Docker

Созданный на 29 июн. 2017  ·  46Комментарии  ·  Источник: docker/machine

Здравствуйте

докер-машина версии 0.12.0, сборка 45c69ad

docker-machine create теперь не работает:

docker-machine -D create \
    --driver google \
    --google-project project \
    --google-zone us-east1-d \
    --google-machine-type n1-standard-1 \
    --google-disk-size 20 \
    --google-preemptible \
    build-vm2

Машина создана и Docker установлен, но не запускается. Проблема, по-видимому, связана с тем, что новая версия Docker устанавливается новой версией сценария установки на https://get.docker.com. Мои установки прошли с 17.05.0-ce до 17.06.0-ce, и с этим изменением Docker устанавливается, но не запускается.

Jun 29 00:50:08 build-vm2 docker[5705]: `docker daemon` is not supported on Linux. Please run `dockerd` directly

или же

Jun 29 00:56:12 build-vm2 dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

Если я не изменю:

/usr/bin/docker daemon -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

к

/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca.pem --tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label provider=google

в /etc/systemd/system/docker.service.d/10-machine.conf .

areprovision kinbug

Самый полезный комментарий

Я использую это как обходной путь:

докер-машина создать \
--driver amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https : //get.docker.com

или же
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

Все 46 Комментарий

Такая же проблема здесь

docker-machine create 
    --driver=digitalocean
    --digitalocean-access-token=XXX 
    --digitalocean-size=2gb
    machinename

Вчера эта же команда отлично работала с докером версии 17.05.0-ce
Сегодня докер моей новой машины не запускается (17.06.0-ce)
Я пробовал несколько раз.

Я тоже могу это подтвердить:

dm create -d digitalocean \
--digitalocean-access-token XXX \
--digitalocean-size 4gb machine

Я использую это как обходной путь:

докер-машина создать \
--driver amazonec2 \
--engine-install-url = https://web.archive.org/web/20170623081500/https : //get.docker.com

или же
--engine-install-url = https://releases.rancher.com/install-docker/17.05.sh

У меня такая же проблема.

версия докера: версия докера 17.06.0-ce
версия докер-машины: 0.12.0, сборка 45c69ad

docker-machine create --driver amazonec2 --amazonec2-region eu-west-1 --amazonec2-instance-type t2.small --amazonec2-access-key XXX --amazonec2-secret-key XXX test-create-machine

29 июня, 12:26:56 ip-172-31-10-149 systemd [1]: запуск Docker Application Container Engine ...
29 июня 12:26:56 ip-172-31-10-149 docker [5234]: docker daemon не поддерживается в Linux. Пожалуйста, запустите dockerd напрямую

docker daemon не поддерживается в Linux. Пожалуйста, запустите dockerd напрямую

Я смог заставить его работать с этим PR
https://github.com/docker/machine/pull/4128

Просто скомпилируйте докер-машину с этим исправлением, и все снова заработает

@gnomus супер, это интересно! Хотя мне интересно, почему он работал на 17.05.0-ce.

@therealppa, ха-

@dminkovsky Я не думаю, что это будет работать вечно, если вы посмотрите в скрипт, он на самом деле нигде не указывает версию ... Тем не менее, прямо сейчас он работает.

@therealppa @dminkovsky Более долгосрочное исправление - изменить строку 457 скрипта с

$sh_c 'apt-get install -y -q docker-ce'

к

$sh_c "apt-get install -y -q docker-ce=17.05.0~ce-0~$lsb_dist-$dist_version"

Надеюсь, что исправленная версия docker-machine скоро выйдет.

мне то же
Мы заставляем его работать, используя «dockerd» вместо «docker daemon» в файле /etc/systemd/system/docker.service.d/10-machine.conf

@ fabio-barile как насчет --storage-driver aufs arg? Мой не запустится, если я тоже не избавлюсь от этого.

@dminkovsky У меня была такая же проблема на ci автомасштабирования с gitlab, возникла проблема aufs + проблема dockerd, пришлось решить ее, указав оверлей в драйвере хранилища.

Помимо проблемы с драйвером хранилища, я также вижу ошибки проверки сертификатов, созданных gitlab-runner (9.3.0). @JustEra, сталкивались ли вы с той же проблемой или я единственный?

http: TLS handshake error from ...:
 tls:
  failed to verify client's certificate: x509:
   certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "unknown")
ERROR: Error creating machine:
 Error checking the host:
  Error checking and/or regenerating the certs:
   There was an error validating certificates for host "...":
    remote error: tls: bad certificate  driver=amazonec2 name=...

Это исправленная проблема с драйвером хранилища для меня (только что удалил этот параметр; ТОЛЬКО для systemd). Примените поверх https://github.com/docker/machine/pull/4128 и заново соберите:

diff --git a/libmachine/provision/systemd.go b/libmachine/provision/systemd.go
index 90d02603..05d63bb5 100644
--- a/libmachine/provision/systemd.go
+++ b/libmachine/provision/systemd.go
@@ -53,7 +53,7 @@ func (p *SystemdProvisioner) GenerateDockerOptions(dockerPort int) (*DockerOptio

        engineConfigTmpl := `[Service]
 ExecStart=
-ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --storage-driver {{.EngineOptions.StorageDriver}} --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}
+ExecStart=/usr/bin/` + arg + ` -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}

Для тех, кто хочет конкретную старую версию, мы (Rancher) поддерживаем слегка измененные скрипты get.docker.com для установки каждого из них:

http://rancher.com/docs/rancher/v1.6/en/hosts/#supported -docker-versions

@ fabio-barile выше совершенно правильно. Не могу себе представить, как «тестирование» позволяет испускать такие вещи.

Дополнительная информация здесь: https://github.com/docker/for-linux/issues/11#issuecomment -312143765

@ vincent99 ... вам всегда нравится

+1
Я проверяю каждый день новую версию докер-машины ... Эта ошибка меня убивает :-)

А пока я добавляю /etc/systemd/system/docker.service.d/20-machine.conf, который заменяет 10-machine.conf правильной командной строкой. Таким образом, дальнейшая команда docker-machine, которая обычно ее ломает, не работает. Конечно, чем дольше это будет исправлено в выпуске, тем больше у меня работы, чтобы вернуть все обратно!

Спасибо за подробное описание проблемы - мы изучаем ее, чтобы попытаться выяснить, что пошло не так.

связанные с https://github.com/docker/for-linux/issues/11#issuecomment -312143765

Таким образом, это не связано со сценарием установки в get.docker.com а скорее связано с некорректной работой сравнения версий и с тем, что 17.06.0-ce является первым, кто официально устарел docker daemon , поэтому мы видя неудачи.

Этот PR (docker / machine # 4128), похоже, решает эту проблему, и к вечеру у меня будет PR, который добавляет тесты для других функций сравнения, чтобы мы больше не столкнулись с чем-то вроде этого.

@seemethere Звучит хорошо, спасибо. Хотелось бы услышать о тесте.

Разница в одном из PR показалась мне немного странной, но думаю, вы, ребята, об этом позаботитесь.

В выпуске 0.12.1 эта ошибка исправлена. Спасибо всем за терпение и помощь.

@ shin- спасибо за быстрое исправление! С нетерпением жду возможности его использовать.

@ shin - Этот патч исправляет часть docker daemon -> dockerd , но Docker по-прежнему не запускается на машине из-за

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

@ shin - мне удалось обойти проблему с драйвером хранилища, добавив --engine-storage-driver=overlay (https://github.com/docker/machine/issues/3895#issuecomment-270934728). Итак, вот весь мой вызов docker-machine .

docker-machine -D create \
    --driver google \
    --google-project $project \
    --google-zone $zone \
    --google-machine-type $type \
    --google-disk-size $size \
    --google-preemptible \
    --engine-storage-driver=overlay \
    $name

Без --engine-storage-driver=overlay он все равно не работает с

dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported

как раньше и как в # 3895

Вы видели журнал, в котором объяснялось, почему он разбился?

Пт, 7 июля 2017 г., в 9:39, Северин Земан [email protected]
написал:

@ shin- https://github.com/shin- к сожалению 0.12.1 не исправил это
для меня.

$ docker -v
Докер версии 17.06.0-ce, сборка 02c1d87
$ docker-machine -v
докер-машина версии 0.12.1, сборка c8b17e8

Я создаю машину amazonec2 с --amazonec2-region = eu-central-1
что создает для меня ami-fe408091.

Результат создания docker-machine:

Выполнение предварительных проверок ...
Создание машины ...
(test-dm) Запускаем экземпляр ...
Ожидание запуска машины, это может занять несколько минут ...
Обнаружение операционной системы созданного экземпляра ...
Ожидание доступности SSH ...
Обнаружение инициатора ...
Подготовка с помощью ubuntu (systemd) ...
Установка Docker ...
Копирование сертификатов в каталог локального компьютера ...
Копирование сертификатов на удаленную машину ...
Настройка конфигурации Docker на удаленном демоне ...
Ошибка при создании машины: Ошибка при запуске: ошибка команды ssh:
команда: sudo systemctl -f start docker
ошибка: статус выхода 1
вывод: задание для docker.service не выполнено, поскольку процесс управления завершился с кодом ошибки. См. "Systemctl status docker.service" и "journalctl -xe" для подробностей.

Выход из запущенной машины:

$ systemctl status docker.service
● docker.service - механизм контейнеров приложений Docker.
Загружено: загружено (/lib/systemd/system/docker.service; включено; предустановка поставщика: включено)
Падение: /etc/systemd/system/docker.service.d
└─10-machine.conf
Активный: неактивный (мертвый) (Результат: код выхода) с Пт 07.07.2017 13:34:47 UTC; 36с назад
Документы: https://docs.docker.com
Процесс: 5522 ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0 : 2376 -H unix: ///var/run/docker.sock --storage-driver aufs --tlsverify --tlscacer
Главный PID: 5522 (код = выход, статус = 1 / ОТКАЗ)

07 июля, 13:34:46 test-dm systemd [1]: docker.service: Устройство перешло в состояние ошибки.
07 июля, 13:34:46 test-dm systemd [1]: docker.service: Ошибка с результатом «код выхода».
07 июля, 13:34:47 test-dm systemd [1]: docker.service: Истекло время ожидания службы, запланирован перезапуск.
07 июля, 13:34:47 test-dm systemd [1]: остановлен механизм контейнеров приложений Docker.
07.07, 13:34:47 test-dm systemd [1]: docker.service: запрос на запуск повторяется слишком быстро.
07 июля, 13:34:47 test-dm systemd [1]: не удалось запустить Docker Application Container Engine.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/docker/machine/issues/4156#issuecomment-313683311 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AANWZXHODzL3Lumb5NqlmXwnSi3VZBBkks5sLjUlgaJpZM4OIt7R
.

@dminkovsky Спасибо за обходной путь. Я решил использовать overlay2 так как это последняя версия драйвера.

Вы знаете, есть ли обходной путь для docker-machine rm {instance-name} ? Я получаю сообщение об ошибке, связанное с EOF и остатки пар ключей остаются в облаке AWS, не позволяя мне воссоздать экземпляр.

Извините, я удалил свое сообщение после того, как тщательно отладил и заметил, что на самом деле это связано с тем, что написал @dminkovsky :

Без --engine-storage-driver=overlay все равно не удается
dockerd[6407]: Error starting daemon: error initializing graphdriver: driver not supported
как раньше и как в # 3895

Есть ли у нас какие-либо проблемы для этого конкретного случая использования хранилища движка AUFS?

@cadavre

Есть ли у нас какие-либо проблемы для этого конкретного случая использования хранилища движка AUFS?

Я видел https://github.com/docker/machine/issues/3895 , который открыт и на который вы также ссылались.

Что интересно, я больше не вижу этой ошибки. Я получаю --storage-driver overlay

@drujensen

Я решил использовать overlay2, поскольку это последняя версия драйвера.

Круто, спасибо, я этого не знала.

Вы знаете, есть ли обходной путь для docker-machine rm {instance-name}?

Не уверен, у меня не было этой ошибки. Я использую docker-machine rm -f когда машина отключена и не отвечает. С -f , docker-machine rm удаляет виртуальную машину и связанные диски, даже если он не может добраться до коробки.

@dminkovsky Можете создать для этого новый выпуск? Это не связано с проблемой dockerd / docker daemon , поэтому мы также должны рассматривать ее отдельно. И, пожалуйста, укажите, какую ОС вы также предоставляете :)

@ shin- у меня все хорошо. docker-machine у ​​меня сейчас работает на 100%. Вы имеете в виду overlay2?

Другая моя проблема, связанная с удалением машин, была решена в pr # 4187. Спасибо.

@dminkovsky Простите - да, тот, который вы здесь упомянули

@shin - После возникновения проблемы в https://github.com/docker/machine/issues/4168 я попытался воссоздать свой промежуточный сервер и обнаружил несколько проблем с docker-machine create о которых было сообщено. в нескольких недавних билетах:

Все это связано? Начать отслеживать их здесь? Я могу подтвердить, что эта проблема актуальна и сегодня.

@ shin- docker-machine v0.12.1 по-прежнему демонстрирует ту же проблему

У меня все еще та же проблема с версией 0.12.1.

screen shot 2017-07-27 at 11 32 00 am

Пожалуйста, обновитесь до последней версии, найденной на github:
https://github.com/docker/machine/releases/tag/v0.12.2

@eamontaaffe @ajwah @costa

Спасибо @dminkovsky. Я 10-machine.conf файл не переопределяется во время обновления

Пожалуйста!

Я указываю "наложение" в параметре командной строки для механизма хранения, и поскольку
мои машины загружаются.

ср, 2 авг. 2017 г. в 12:05, Денис [email protected] :

Спасибо @dminkovsky https://github.com/dminkovsky Я получил это
ошибка на 0.12.2 и сегодня !!! Похоже, что файл 10-machine.conf не
переопределено во время обновления

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/docker/machine/issues/4156#issuecomment-319719085 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AANWZSYqy1uGhWeXozx35OnFhPRSb144ks5sUJ5YgaJpZM4OIt7R
.

Если вы используете системы с ядром> 4.4, я предлагаю использовать overlay2 .

Мне не удалось заставить машину использовать overlay2, и вариант использования для этого
к счастью, только строил / CD

ср, 2 авг. 2017 г. в 12:36, Северин Земан [email protected] :

Если вы используете системы с ядром> 4.4, я предлагаю использовать overlay2.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/docker/machine/issues/4156#issuecomment-319727847 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AANWZXLGHjLvfOOAgmBWV0zOEBDZBdSVks5sUKWBgaJpZM4OIt7R
.

Также появляется эта ошибка на 0.12.2 :-(

это еще открылось!

Я все еще вижу эту проблему с docker-machine 0.12.2 . Я двинулся вперед, удалив докер на подготовленном компьютере ( sudo apt purge docker-ce && sudo apt autoremove ) и использовал правильный сценарий установки Rancher для моей версии, как указано выше.

По какой-то причине это все еще не запускает докер, но перезагрузка машины решает это.

Могу подтвердить, все та же ошибка

@jhartma Я думаю, необходимо обновить до последней версии (образ Linux) и работает

@kassanmoor кажется, что мой AMI не поддерживает его на AWS, я заставил его работать со стандартным

Была ли эта страница полезной?
0 / 5 - 0 рейтинги