Replies: 1 comment
-
|
我更推荐alpine的minirootfs |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
实现流程
1 下载镜像。
前往 北京外国语大学开源软件镜像站 下载Linux发行版的容器内镜像
lxc-images,注意下载时选择arm64架构的镜像。例如下载的是:
https://mirrors.bfsu.edu.cn/lxc-images/images/ubuntu/jammy/arm64/default/20230730_07%3A43/rootfs.tar.xz。2 处理镜像。
由于词典笔内置的busybox内的tar命令不能很好识别压缩过的tar包,需要在电脑上重新打包一个未压缩的tar包。
例如,在Ubuntu下,分别执行以下命令:
最后
rootfs.tar就是处理好的镜像。3 从镜像提取文件。
将镜像拷贝到词典笔。使用
tar命令将其中文件提取到一个在/userdisk/下的任意目录。例如,假定这个任意目录是
/userdisk/chroot,拷贝进去的镜像在/userdisk/Music/rootfs.tar,在词典笔的shell下执行以下命令提取文件:最后,
/userdisk/chroot就是即将放入容器内文件的目录。4 处理容器内的
resolv.conf和hosts。如果不处理这两个文件,在容器内会出现域名无法解析的问题。
例如,假设容器镜像被提取在
/userdisk/chroot:i) 向
/userdisk/chroot/etc/resolv.conf中写入以下内容:ii) 向
/userdisk/chroot/etc/hosts中写入以下内容:最后在容器内的测试结果是,在容器中除了
ping命令暂时无解外(提示ping: www.baidu.com: Temporary failure in name resolution),其他命令和程序都能成功解析域名。5 处理容器内的时区。(可选)
如果不处理则会出现像上一步的测试图中的
wget命令返回的那样(返回2023-07-31 18:46:40,不是北京时间${屏幕左上角})。处理方法就自行百度了(本人这里偷点懒,略去)。
6 编写容器的启动脚本。
在启动容器之前,可根据需要在执行
chroot命令前挂载相应的资源和文件系统,但如果每次启动容器前都要手动输入就比较麻烦了。例如,这里假设脚本创建在
/userdisk/chroot.sh,容器镜像被提取在/userdisk/chroot,在启动只挂载资源,则脚本内写入如下内容:这个脚本会在启动容器前挂载好词典笔的
proc,sys和dev。7 启动容器。
假设脚本创建在
/userdisk/chroot.sh,命令行执行这个脚本:此时就进入容器内了(容器内自带
apt)。Beta Was this translation helpful? Give feedback.
All reactions