Docker-compose: ошибка при попытке запустить образ mongo

#docker #docker-compose #dockerfile

#docker #docker-compose #dockerfile

Вопрос:

Я пытаюсь запустить изображение с помощью mongo-compose.

Файл компоновки — это:

 version: '2'
services:
  db:
    image: mongo:3.4.10
    volumes:
      - ./data/mongodb:/data/db
  

После запуска

 docker-compose -p DropDesk up -d db
  

Я получаю сообщение «готово», но контейнер не запущен. Проверяя журналы контейнеров, я вижу это сообщение:

 exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
  

Кроме того, если я удалю сопоставление томов из файла компоновки, контейнер будет работать без проблем.

Я использую Centos 7 (ядро 5), я отключил selinux, я использую Docker engine 18.09).

Кто-нибудь знает, почему это может происходить? Я провел пару часов без результата.

Комментарии:

1. mongo очень требователен к файлам, вы пытались удалить локальную ./data/mongodb папку и использовать новую? для меня это работает довольно хорошо

Ответ №1:

измените ваш docker-compose.yml файл на:

 version: '2'
services:
    db:
        image: mongo:3.4.10
        command: mongod --dbpath /data/db
        volumes:
            - ./data/mongodb:/data/db
  

Ответ №2:

Эта проблема связана с неправильными разрешениями.

Убедитесь ./data , что конечная точка вашего тома из docker-compose.yml файла находится в файловой системе, поддерживаемой другими разрешениями группы пользователей. Размещение папки в NTFS отформатированном разделе приведет к вышеупомянутой ошибке (ее перемещение Ext4 решит эту проблему).

Ответ №3:

Измените права доступа к каталогу ./data/mongodb , чтобы пользователь в docker мог записывать в каталог.