Невозможно смонтировать постоянный том в контейнер 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/

Следующая конфигурация работала для меня:

изображение настройки хранилища VirtualBox

Другие вопросы по тегам