gpt4 book ai didi

docker - Alpine Linux - root 安装为 ro iso9660 文件系统 如何重新安装为 rw 覆盖层?

转载 作者:行者123 更新时间:2023-12-02 06:41:17 26 4
gpt4 key购买 nike

我使用的是 OSX,并且已安装 Docker for Mac。

在 OSX 上,Docker 在一个小型虚拟机管理程序中运行其容器,我们可以从进程列表中看到这一点


❯ ps awux | grep docker
布莱恩亨特 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,,
布莱恩亨特 509 0.0 0.1 558589408 9608 ?? S Fri11am 0:30.26 com.docker.driver.amd64-linux -addr fd:3 -debug

注意它是如何从 ISO 镜像运行 VM /Applications/Docker.app/Contents/Resources/linuxkit/docker-for-mac.iso - 这可能是一个好主意,因为事情会如果用户篡改虚拟机镜像,就会变得棘手,但是,在这种情况下,这正是我想要做的。

我可以通过运行执行 nsenter 的特权容器来进入 Docker VM。实用程序以进入主机进程空间。


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

所以一切都很好。我现在可以进入下一阶段,安装并运行 plotnetcfg .

plotnetcfg创建非常漂亮的网络配置 graphviz 图,这就是我想做的,分析 Docker VM 内的网络配置(顺便说一句,它是 Alpine Linux)。

这是plotnetcfg可以生成的图表类型的示例:

plotnetcfg generated network graph

这就是我的实际目标 - 为黑客马拉松可视化 Docker 网络配置。

现在终于问题的描述了。

根文件系统是 iso9660 安装。

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

有没有办法使用aufs堆栈文件系统或任何其他方式重新挂载root,以便我可以更新系统包,下载、编译和执行plotnetcfg实用程序,最后导出生成的graphviz点文件并渲染它别处?

最佳答案

对于问题:root 安装为 ro iso9660 文件系统,如何重新安装为 rw 覆盖?

答案是:您无法重新挂载为 rw,但如果您确实想暂时添加某些内容,则 tmpfs/tmp 或 shm/dev/shm 是可写的。

对于你想做的事情:

通过docker run,您已经可以访问 docker 虚拟机的网络。

你不需要修改主机来更改网络,只需为 docker run 添加 --privileged -v/dev:/dev 即可在容器中安装软件包、创建你想要的界面

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

例如,您可以在容器中创建tap或tun dev,我在容器中使用tinc来创建主机vpn。

关于docker - Alpine Linux - root 安装为 ro iso9660 文件系统 如何重新安装为 rw 覆盖层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50370062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com