У меня есть небольшой контейнер Docker, из которого я могу получить доступ к / dev / loop0. Для этого я добавил docker run
:
--device=/dev/loop-control:/dev/loop-control \
--device=/dev/loop0:/dev/loop0 \
На этом устройстве с обратной связью я создаю два или более разделов с помощью parted / fdisk.
Теперь мне нужно смонтировать оба раздела, но, к сожалению, я не могу получить доступ ни к одному из них. /dev/loop0p1
или /dev/loop0p2
или любой другой динамически созданный раздел.
Есть ли способ получить к ним доступ, не создавая контейнер --privileged
?
Спасибо.
Хотя вопрос старый, это все еще проблема.
Ядро Linux не передает события регистрации устройств в контейнеры, поэтому /dev/*
файлы не отображаются в контейнере для устройств, которые добавляются во время работы контейнера.
В качестве обходного пути в контейнере вы можете искать отсутствующие файлы устройств и создавать их, как в следующем сценарии оболочки:
FILTER='^loop'
lsblk --raw -a --output "NAME,MAJ:MIN" --noheadings | grep -E "$FILTER" | while read LINE; do
DEV=/dev/$(echo $LINE | cut -d' ' -f1)
MAJMIN=$(echo $LINE | cut -d' ' -f2)
MAJ=$(echo $MAJMIN | cut -d: -f1)
MIN=$(echo $MAJMIN | cut -d: -f2)
[ -b "$DEV" ] || mknod "$DEV" b $MAJ $MIN
done
(Я использовал FILTER='^(r|n)bd'
соответствовать /dev/rbdX
и /dev/nbdX
в моем случае устройства ceph создаются динамически.)
Имейте в виду, что приведенный выше сценарий не отменяет регистрацию устройств, удаленных на хосте. Если вам также нужно это сделать, вы также можете запустить следующее (FILTER
необходимо указать):
find /dev -mindepth 1 -maxdepth 1 -type b | cut -d/ -f3 | grep -E "$FILTER" | sort > /tmp/devs-created
lsblk --raw -a --output "NAME" --noheadings | grep -E "$FILTER" | sort > /tmp/devs-available
for ORPHAN in $(comm -23 /tmp/devs-created /tmp/devs-available); do
rm /dev/$ORPHAN
done
Если ваши устройства создаются динамически, вы можете периодически запускать оба сценария в контейнере.
Вам все еще нужно запустить свой контейнер --privileged
для работы с устройствами.
Также см этот комментарий к проблеме моби мой сценарий основан на.