安卓端免root免内核编译运行容器&udocker基本使用教程【nethunter】【docker】

【最后一次更新:2023.1.24】
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任~
1.前言
这是我写的第一篇文章也是国内目前唯一一篇完整的udocker安装教程,使用和绕坑教程~如有一些地方写得不好还望社区中的各位大佬小白体谅~下面就由汤圆我来给大家介绍Udocker....
2.简介
Udocker: 一个基本的用户工具,可以在批处理或交互式系统中执行简单的docker容器,而无需root权限和docker,具有依赖少,本地文件,无需root的特点
3.安装
0最新添加
忘了跟大家说了,直接在root下执行udocker会出现提示要求不以root运行
解决方案:在命令“udocker”后加入“--allow-root”
3.1安装依赖
-python3/python2
-pycurl/curl
-hashlib/openssl
-tar
-find
-chmod
-chgrp
-ldconfig
3.2安装udocker
安装方案一(推荐)
wget https://github.com/indigo-dc/udocker/releases/download/1.3.6/udocker-1.3.6.tar.gz
tar zxvf udocker-1.3.6.tar.gz
export PATH=`pwd`/udocker-1.3.6/udocker:$PATH
udocker install
其它方案:见https://indigo-dc.github.io/udocker/installation_manual.html
坑:运行udocker install时出现一些奇奇怪怪的报错
绕坑:
安装tarballs文件
curl -L https://github.com/jorge-lip/udocker-builds/raw/master/tarballs/udocker-englib-1.2.8.tar.gz > udocker-englib-1.2.8.tar.gz
设置tarballs文件路径并执行重新安装
export UDOCKER_TARBALL=udocker-englib-1.2.8.tar.gz
udocker install --force
4.使用
4.1Syntax
Commands:
search <repo/expression> :搜索dockerhub以获取容器图像
pull <repo/image:tag> :从dockerhub拉取容器映像
create <repo/image:tag> :从拉取的图像创建容器
run <container> :执行容器
images -l :列出容器图像
ps -m -s :列出创建的容器
name <container_id> <name> :为容器命名
rmname <name> :从容器中删除名称
rename <name> <new_name> :更改容器名称
clone <container_id> :克隆容器
rm <container-id> :删除容器
rmi <repo/image:tag> :删除图像
import <tar> <repo/image:tag> :导入tar文件(由docker导出)
import - <repo/image:tag> :从stdin进口(由docker出口)
export -o <tar> <container> :导出容器目录树
export - <container> :导出容器目录树
load -i <imagefile> :从文件中加载图像(由docker保存)
load :从stdin加载图像(由docker保存)
save -o <imagefile> <repo/image:tag> :将带有图层的图像保存到文件中
inspect -p <repo/image:tag> :返回图像上的低级信息
verify <repo/image:tag> :验证拉取或加载的图像
protect <repo/image:tag> :保护存储库
unprotect <repo/image:tag> :取消存储库保护
protect <container> :保护容器
unprotect <container> :取消储存库保护
mkrepo <top-repo-dir> :在位置创建另一个存储库
setup :更改容器执行设置
login :登录docker存储库
logout :从docker存储库注销
help :This help
run --help :特定于命令的帮助
version :显示udocker版本
Options common to all commands must appear before the command:
-D :Debug
--quiet :更少的冗差
--repo=<directory> :在目录中使用存储库
--insecure :允许不安全的未经身份验证https
--allow-root
4.2用法案例(这里我以busybox容器为例)
在dockerhub中搜索容器图像:udocker search busybox 从dockerhub中拉取容器图像:udocker pull arm64v8/busybox(这边汤圆为安卓设备对应架构arm64v8) (提取容器:udocker create arm64v8/busybox) 提取并运行容器:udocker run arm64v8/busybox
提示:当运行udocker容器时出现报错说明容器架构可能与本机架构不同(如下图报错)

最后附上udocker成功运行busybox图片一张

提示:注意显示出的那段“乱码”(如下)

如需再次使用该容器可运行udocker run “乱码”
或者你可以运行udocker ps列出已提取的容器的“乱码”
如果运行udocker run arm64v8/busybox会重新提取容器并运行
提示:注意显示出的那段“乱码”(如下)
如需再次使用该容器可运行udocker run “乱码”
或者你可以运行udocker ps列出已提取的容器的“乱码”
如果运行udocker run arm64v8/busybox会重新提取容器并运行
4.3删除容器/已提取的容器
udocker rmi 容器名称
udocker rm 已提取的容器“乱码”
4.4更多高级使用
开源项目https://github.com/indigo-dc/udocker
使用手册https://indigo-dc.github.io/udocker/
5.交流群

6.参考
https://www.5axxw.c+om/wiki/content/7r7m6n
https://indigo-dc.github.io/udocker/
文章内容如有侵权请联系我~
【转载自:https://blog.csdn.net/qq_57851190/article/details/128757438】