2016-08-30 7 views
0

Я пытаюсь изменить драйвер хранилища на devicemapper на mac. и выполнял следующие шаги: Change docker storage driver on Mac OS XКак я могу изменить драйвер хранилища докеров на devicemapper на mac

но я получил следующую ошибку: мой докер для mac - это последняя версия.

$ docker-machine create --driver virtualbox --engine-storage-driver devicemapper test2 
Running pre-create checks... 
Creating machine... 
(test2) Copying /Users/weiwang/.docker/machine/cache/boot2docker.iso to /Users/weiwang/.docker/machine/machines/test2/boot2docker.iso... 
(test2) Creating VirtualBox VM... 
(test2) Creating SSH key... 
(test2) Starting the VM... 
(test2) Check network to re-create if needed... 
(test2) Waiting for an IP... 
Waiting for machine to be running, this may take a few minutes... 
Detecting operating system of created instance... 
Waiting for SSH to be available... 
Detecting the provisioner... 
Provisioning with boot2docker... 
Copying certs to the local machine directory... 
Copying certs to the remote machine... 
Setting Docker configuration on the remote daemon... 
Checking connection to Docker... 
Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.105:2376": read tcp 192.168.99.1:49168->192.168.99.105:2376: read: connection reset by peer 
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'. 
Be advised that this will trigger a Docker daemon restart which will stop running containers. 

ответ

1

Примечание: Пожалуйста, внимательно прочитайте обновленное

Devicemapper не поддерживается больше. Вы можете использовать оверлей, который также очень хорош.

Использование: docker-machine create --driver virtualbox --engine-storage-driver overlay test2

Edit:

Мой первоначальный комментарий не ответил на вопрос правильно. После еще нескольких исследований того, как работает драйвер хранилища devicemapper, оказывается, что базовая ОС-док-машина по умолчанию boot2docker не поддерживает драйвер хранилища devicemapper.

Вот список поддерживаемых дистрибутивах:

  • RHEL/CentOS/Fedora
  • Ubuntu 12,04
  • Ubuntu 14,04
  • Debian

Более подробную информацию можно найти here.

Чтобы решить проблему, вам необходимо установить один из указанных дистрибутивов на виртуальную машину. Добавьте SSH-сервер и пользователь sudo без пароля, который может запускать команды без tty.

Я пробовал это, установив виртуальную виртуальную машину CentOS в VirtualBox, добавив NAT и драйвер только для хоста (NAT для загрузки пакетов в Интернете и адаптер только для хоста для частной сети, в которой докер-машина и виртуальная машина может связываться.)

После настройки виртуальной машины вы можете использовать следующую команду для подключения к докер-машине. docker-machine сделает ssh в VM и проверяет, установлен ли Docker Engine. Если это не так, оно будет автоматически загружено и настроено.

docker-machine create \ 
    --driver generic \ 
    --generic-ip-address=192.168.58.14 \ 
    --generic-ssh-port 22 \ 
    --generic-ssh-key ~/.ssh/id_rsa \ 
    --engine-storage-driver devicemapper \ 
    docker-centos 

Более подробная информация об использовании универсального драйвера здесь: https://docs.docker.com/machine/drivers/generic/

Надежда это поможет вам немного больше на пути, чем исходный ответ :)

+0

Спасибо Menzo, я могу создать машина с наложением в качестве накопителя, но это не устраняет мою проблему. Мне нужно запустить службу внутри контейнера, но эта служба не работает с aufs и overlay. – weiwang

+0

@weiwang. Я немного поработал над этой темой и обновил свой ответ. Определенно по-прежнему можно использовать драйвер хранилища devicemapper. Docker просто не поддерживает его с базой ОС по умолчанию. –

+0

отлично! Спасибо за информацию. – weiwang

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

  • Нет связанных вопросов^_^