Проблема

Если после запуска службы с помощью команды:

sudo systemctl start rootless-docker@$(systemd-escape <имя_пользователя>@1:0:0:0@privsock)
CODE

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

rootlessenv docker run … -v <путь_монтированной_файловой_системы>:<путь_внутри_контейнер>
CODE

содержимое примонтированного каталога отсутствует.

Диагностика

  • Выполнить команды:
    sudo apt install docker.io rootless-helper-astra -y
    sudo mkdir -p /test_mount/{source,mountpoint}
    sudo chmod 777 -R /test_mount
    echo "Этот файл должен быть виден в контейнере" > /test_mount/source/testfile.txt
    sudo adduser test
    sudo pdpl-user -l 0:3 test
    CODE
  • Запустить службу:
    sudo systemctl start rootless-docker@$(systemd-escape test@1:0:0:0@privsock)
    CODE
  • Выполнить монтирование:
    sudo mount --bind /test_mount/source /test_mount/mountpoint
    CODE
  • Проверить, что тестовый файл доступен:
    ls -la /test_mount/mountpoint/
    CODE
  • Выполнить запуск контейнера от имени пользователя test:
    rootlessenv docker run --rm -v /test_mount/mountpoint:/mnt/test alpine ls -la /mnt/test/
    CODE
  • Убедиться в отсутствии тестового файла.

  • Выполнить перезапуск службы:
    sudo systemctl restart rootless-docker@$(systemd-escape test@1:0:0:0@privsock)
    CODE
  • Повторно запустить контейнер от имени пользователя test:
    rootlessenv docker run --rm -v /test_mount/mountpoint:/mnt/test alpine ls -la /mnt/test/
    CODE
  • Убедиться в наличии тестового файла.

Возможная причина: Docker. Монтирование после запуска службы rootless . Перейти к решению.


Возможные причины