Alpine Linux - root, смонтированный как файловая система ro iso9660, как мне перемонтировать его как rw overlay? - PullRequest
0 голосов
/ 16 мая 2018

Я на OSX и у меня установлен Docker для Mac.

В OSX Docker запускает свои контейнеры внутри небольшого гипервизора, это можно увидеть из списка процессов

❯ ps awux | grep docker bryanhunt 512 1.8 0.2 10800436 34172 ?? S Fri11am 386:09.03 com.docker.hyperkit -A -u -F vms/0/hyperkit.pid -c 8 -m 6144M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-vpnkit,path=s50,uuid=c0fac0ff-fb9a-473f-bf44-43d7abdc701d -U 05c2af3a-d417-43fd-b0d4-9d443577f207 -s 2:0,ahci-hd,/Users/bryanhunt/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw -s 3,virtio-sock,guest_cid=3,path=vms/0,guest_forwards=2376;1525 -s 4,ahci-cd,/Applications/Docker.app/Contents/Resources/linuxkit/docker-for-mac.iso -s 5,ahci-cd,vms/0/config.iso -s 6,virtio-rnd -s 7,virtio-9p,path=s51,tag=port -l com1,autopty=vms/0/tty,asl -f bootrom,/Applications/Docker.app/Contents/Resources/uefi/UEFI.fd,, bryanhunt 509 0.0 0.1 558589408 9608 ?? S Fri11am 0:30.26 com.docker.driver.amd64-linux -addr fd:3 -debug

Обратите внимание, как она запускает виртуальную машину из ISO-образа /Applications/Docker.app/Contents/Resources/linuxkit/docker-for-mac.iso - это, вероятно, хорошая идея, потому что все может быть сложно, если пользователи вмешиваются в образ виртуальной машины, однако в данном случае это именно то, что я хочу сделать.

Я могу попасть внутрь Docker VM, запустив привилегированный контейнер, который выполняет утилиту nsenter для входа в пространство процесса хоста.

docker run --rm -it --privileged --pid=host walkerlee/nsenter -t 1 -m -u -i -n sh

Так что все хорошо. Теперь я могу перейти к следующему этапу, установить и запустить plotnetcfg .

plotnetcfg создает очень хорошие графические диаграммы конфигурации сети, и это то, что я хотел бы сделать, проанализировать конфигурацию сети внутри Docker VM (это Alpine Linux BTW).

Вот пример диаграммы, которую может сгенерировать plotnetcfg:

plotnetcfg generated network graph

Это моя настоящая цель - визуализировать сетевую конфигурацию Docker для хакатона.

Теперь наконец описание проблемы.

Корневая файловая система - монтирование iso9660.

/ # mount |grep iso
/dev/sr0 on / type iso9660 (ro,relatime)

Есть ли способ перемонтировать root, используя стекированную файловую систему aufs или любым другим способом, чтобы я мог обновить системные пакеты, скачать, скомпилировать и запустить утилиту plotnetcfg, и, наконец, экспортировать сгенерированный файл graphviz dot и отобразить его в другом месте?

1 Ответ

0 голосов
/ 02 августа 2018

На вопрос: root mounted as ro iso9660 filesystem how can I remount as rw overlay ?

Ответ таков: вы не можете перемонтировать как rw, но tmpfs / tmp или shm / dev / shm доступны для записи, если вы действительно хотите что-то добавить временно,

Для того, что вы хотите сделать:

С помощью docker run вы уже можете получить доступ к сети Docker VM.

Вам не нужно изменять хост для изменениясеть, вы можете просто добавить --privileged -v /dev:/dev для запуска Docker, затем вы можете просто установить пакет в контейнере, создать нужный интерфейс

docker run --rm -it --privileged -v /dev:/dev wener/base ifconfig

Например, вы можете создать в контейнере команду tap или tun dev,Я использую Tinc в контейнере для создания хоста vpn.

...