#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 мог записывать в каталог.