lixd / mydocker

参考《自己动手写 docker》从零开始实现一个简易的 docker 以及相关教程。Build a simple Docker from scratch along with related tutorials.
https://www.lixueduan.com/categories/docker/
MIT License
319 stars 35 forks source link

为什么出现 untar error #4

Closed StLeoX closed 3 months ago

StLeoX commented 3 months ago

报错如下:

./mydocker run -it  /bin/ls
{"level":"info","msg":"createTty true","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"resConf:\u0026{ 0  }","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"lower:/var/lib/mydocker/overlay2/3090112964/lower image.tar:/var/lib/mydocker/image//bin/ls.tar","time":"2024-06-17T12:17:03+08:00"}
{"level":"error","msg":"Untar dir /var/lib/mydocker/overlay2/3090112964/lower error exit status 2","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"mount overlayfs: [/bin/mount -t overlay overlay -o lowerdir=/var/lib/mydocker/overlay2/3090112964/lower,upperdir=/var/lib/mydocker/overlay2/3090112964/upper,workdir=/var/lib/mydocker/overlay2/3090112964/work /var/lib/mydocker/overlay2/3090112964/merged]","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"command all is ","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"init come on","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"Current location is /var/lib/mydocker/overlay2/3090112964/merged","time":"2024-06-17T12:17:03+08:00"}
{"level":"error","msg":"Exec loop path error exec: \"\": executable file not found in $PATH","time":"2024-06-17T12:17:03+08:00"}
{"level":"fatal","msg":"exec: \"\": executable file not found in $PATH","time":"2024-06-17T12:17:03+08:00"}
{"level":"info","msg":"umountOverlayFS,cmd:/bin/umount /var/lib/mydocker/overlay2/3090112964/merged","time":"2024-06-17T12:17:03+08:00"}
lixd commented 3 months ago

根据日志,这个应该是可以手动指定镜像的版本,启动命令第一个参数为镜像名,第二个才是命令。在 /var/lib/mydocker/image/ 目录下准备一个 $imageName.tar 文件作为容器 rootfs,不同分支用法有所不同,需要对照对应的文章看下。