Невозможно смонтировать постоянный том в контейнер Docker с помощью хранилища Rex-Ray и VirtualBox Media - ошибка "Недопустимая ссылка на управляемый объект"
Я пытаюсь смонтировать том данных в докер-контейнер с помощью плагина Rex-Ray. Я выбрал VirtualBox Media в качестве поставщика услуг хранения.
Версии, которые я использую:
- Докер 1.12.5
- Rex-Ray 0.6.3 с libStorage 0.3.5
- Базовый пакет VirtualBox 5.1.12
Настройка:
- Одна виртуальная машина CentOS 7, запущенная в VirtualBox
- Docker 1.12.5 работает на CentOS 7 VM
- Rex-Ray установлен и работает в CentOS 7 VM
- Mac OS X 10.12.1 хост-машина
На хост-компьютере Mac OS:
1 Я выключаю аутентификацию VirtualBox SOAP API с помощью VBoxManage setproperty websrvauthlibrary null
2 Я запускаю VirtualBox SOAP API с помощью vboxwebsrv -H 0.0.0.0 -v
разрешить Rex-Ray общаться с VirtualBox
В CentOS 7 VM я делаю следующее (как root):
1 Запустите Docker с помощью systemctl start docker
2 Создать Rex-Ray /etc/rexray/config.yml
файл:
libstorage:
service: virtualbox
integration:
volume:
operations:
mount:
preempt: true
virtualbox:
endpoint: http://192.168.99.1:18083
volumePath: /Users/<username>/Volumes
controllerName: SATA
где endpoint
это IP-адрес, на котором API-интерфейс VirtualBox SOAP работает на хост-компьютере Mac OS X и volumePath
является существующей папкой на хосте Mac OS X, в которой тома будут сохраняться после создания
Этот файл конфигурации соответствует формату, описанному в учебном руководстве по Dell EMC по https://github.com/codedellemc/labs/tree/master/setup-virtualbox-dockermachine
3 Запустите сервис Rex-Ray, используя rexray start
4 Создайте том объемом 1 ГБ с docker volume create -d rexray --name pg_data --opt=size=1
5 Попытка запустить докерский контейнер Postgres, используя официальный postgres
образ. rexray
созданный ранее том монтируется на /var/lib/postgresql/data
каталог в контейнере Postgres:
docker run -dit --name pg -e POSTGRES_PASSWORD=mysecretpassword --volume-driver=rexray -v pg_data:/var/lib/postgresql/data postgres
Контейнер не запускается, и я получаю следующую ошибку
Error response from daemon: VolumeDriver.Mount: {"Error":"VirtualBox error: Invalid managed object reference """}
Мои настройки хранилища VirtualBox показаны на следующем рисунке:
настройки хранилища virtualbox
Любая помощь высоко ценится
1 ответ
Проблема заключалась в том, что счетчик портов для контроллера SATA в настройках хранилища VirtualBox (как показано на рисунке, связанном с вопросом) по умолчанию равен 1.
Решение состояло в том, чтобы изменить это число на любое количество томов, которое вы собираетесь смонтировать.
Согласно документам Rex-Ray рекомендуемое количество: 30: http://rexray.readthedocs.io/en/v0.3.3/user-guide/storage-providers/
Следующая конфигурация работала для меня: