You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
实现流程
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