Невозможно поделиться данными контейнера докеров через -v

Пытаюсь поиграться с postgres и докером:

 docker run --name pg -v /Users/xxx/docker/data:/var/lib/postgresql/data -d postgres

немедленно останавливается. Запустите образ без -v, на котором контейнер продолжает работать. Если я войду через /bin/sh, я увижу точку монтирования с базами данных postgres по умолчанию:

root@f9e0e92dae26:/# df -k
Filesystem     1K-blocks     Used Available Use% Mounted on
none            19049892   737424  17321744   5% /
tmpfs            1025332        0   1025332   0% /dev
shm                65536        8     65528   1% /dev/shm
none           116884912 52807056  64077856  46% /var/lib/postgres/data
/dev/sda1       19049892   737424  17321744   5% /var/lib/postgresql/data

Но я не могу поделиться ими с хостом, как говорит опция -v. Что здесь не так?


В журнале говорится:

    The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
initdb: could not create directory "/var/lib/postgresql/data/pg_wal/archive_status": Permission denied
initdb: removing contents of data directory "/var/lib/postgresql/data"

Я попытался передать виртуальную машину дополнительный общий каталог, кроме /Users и /, в моем случае /Users/xxx/docker/data, перезапустив виртуальную машину, но это, похоже, не работает. В виртуальной машине (docker-machine ssh) я вижу, что /data смонтирована. Машина Docker, похоже, монтирует последнюю часть полного пути. Любое объяснение? Таким образом, возможно, официальные изображения postgres могут быть изменены (в файле докеров?), чтобы изменить базовый путь, примеры приветствуются.

Вы должны попытаться отладить> docker logs pg

lescaudr 13.02.2019 23:00

«Отказано в доступе» довольно просто, не так ли? Применяются обычные шаги отладки (проверка прав собственности, разрешений и т. д.).

Charles Duffy 15.02.2019 23:39

Это не просто, как кажется. Каталог на стороне хоста принадлежит мне, поэтому неправильные разрешения не являются реальной темой. Я работаю с Docker Toolbox для Mac, похоже, это общая проблема с базовой виртуальной машиной. См. отредактированное выше.

frameworker 16.02.2019 09:00

Я столкнулся с той же проблемой несколько дней назад, это и ветка Reddit - единственные вещи, которые я нашел во всем Интернете. Любые обновления о том, как это исправить?

Joan Albert 22.12.2021 13:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
4
867
1

Ответы 1

Я столкнулся с той же проблемой с Vbox VM под Windows. Я пытался использовать общие папки между виртуальной машиной и моей ОС Windows, что вызывает проблему с разрешениями. Я решил проблему с передачей каталога из /home/{username}/.. для тома

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