У меня есть каталог, например /demoenv
. Я хотел бы запустить в нем двоичный файл как контейнер докеров.Как запустить chrooted каталог в качестве контейнера докера?
По существу, он будет работать как chroot, но с многочисленными дополнительными функциями (и с многочисленными недостатками), что обеспечивает контейнер докеров.
В этом случае это абсолютно не проблема, если он не может принять участие в очень полезном механизме фиксации изображения/контейнера докеров (для этого у меня есть альтернативное решение).
Могу ли я как-нибудь это сделать?
- Моя первая проблема в том, что в этом случае у меня действительно нет изображения для начала.
- Моей вторая проблема заключается в том, что
-v
объем варианта (параметрdocker run
) запрещает монтирование корневого раздела со следующим сообщением установки:
docker: Error response from daemon: Invalid bind mount spec "/demoenv:/": Invalid specification: destination can't be '/' in '/demoenv:/'.
Наконец-то я нашел обходное решение: я просто монтирую все корневые каталоги с помощью '-v'. Но это очень грязно. :-( – peterh
Вы можете, конечно, просто создать изображение докеры из файловой системы, а затем запустить изображение докера в качестве контейнера. В качестве альтернативы вы можете использовать что-то вроде 'systemd-nspawn', которое дает вам множество функций, которые можно ожидать от Docker с точки зрения изоляции, в то время как легко работает с существующими каталогами. – larsks
@larsks 1) Мне нужен докер, потому что я демонстрационирую контейнер докера 2) сделать копию нехорошо, потому что она большая, и мне нужно взаимодействие между хостом и контейнер на уровне fs. – peterh