Administrator
发布于 2024-05-16 / 388 阅读 / 0 评论 / 1 点赞

Android使用lxc运行docker

一、首先内核编译,开启docker和kernelsu

1. github上搜索自己手机型号内核代码,例如小米10,将其fork到自己仓库

2. KernelSU_Action fork到自己仓库

3. 修改config.env配置

主要修改一下配置

4. 点击action编译内核,编译成功后下载zip文件刷入

二、手机上安装lxc相关模块

主要安装以下两个模块,安装完成后重启

内核下载地址

https://github.com/tomxi1997/lxc-magisk-modules-for-android-/releases

主要下载以下两个,这里不推荐ubuntu22.04版本,网络重连后,会 导致容器网络无法访问,18.04没有该问题

https://github.com/tomxi1997/lxc-magisk-modules-for-android-/releases/download/v1/LxcMagisk-core.zip

https://github.com/tomxi1997/lxc-magisk-modules-for-android-/releases/download/v1/Magisk-lxc-ubuntu-18.04-rootfs.zip

三、连接与配置

1. 手机上安装ZeroTermux或者直接使用电脑xhell连接

下载地址:https://github.com/hanxinhao000/ZeroTermux/releases/download/release/ZeroTermux-0.118.39.apk

手机上ZeroTermux执行安装tsu,接着执行tsu,ZeroTermux需要给root权限

pkg install tsu

source /data/lxc/env.sh

查看容器运行状态 running表示运行中 lxc-ls -f

1. lxc-checkconfig:检查系统环境是否满足容器使用要求。

2. lxc-create:创建lxc容器;

lxc-create -n NAME -t TEMPLATE_NAME

3. lxc-start:启动容器;

lxc-start -n foo [-f config] /bin/bash

lxc-start -n NAME -d

-d守护进程方式启动容器。如果没有指定命令,lxc-start将运行/sbin/init。

lxc-create创建的容器,在停止运行后需要使用lxc-destroy销毁。

4. lxc-execute:执行命令

lxc-execute -n foo [-f config] /bin/bash

lxc-execute通过中间进程lxc-init使命令在容器中运行。

如果容器不存在,lxc-execute会自动创建一个,停止运行后会被自动销毁。

lxc-execute启动应用程序,配置优先级如下:

如果执行-f选项,那么之前创建容器的配置文件不会被使用。如果指定-s选项,则在命令行中配置的键值对会覆盖配置文件(无论之前的还是-f指定的)的相同配置。

5. lxc-stop:停止容器;(停止命令很慢)

lxc-stop -n NAME -d

6. lxc-destory:删除处于停机状态的容器;

lxc-destroy -n NAME

7. lxc-info:查看容器相关的信息;

lxc-info -n NAME

8. lxc-ls:列出容器

lxc-ls --fancy 列出详细信息

9. lxc-monitor:监控容器

lxc-monitor -n "foo|bar"

lxc-monitor -n ".*"   ;监控所有容器

当一个容器的状态变化时,lxc-monitor会在屏幕上打印出容器的状态。

10. lxc-wait:监听容器特定状态后退出

lxc-wait -n foo -s STOPPED &

11. lxc-cgroup:设置或获取与cgroup相关的参数(control group subsystem)

lxc-cgroup -n foo cpuset.cpus

lxc-cgroup -n foo cpu.shares 512

11. lxc-snapshot:创建和恢复快照;

2. 使用ssh进行连接

ssh root@127.0.0.1 -p 8188 因为这里是本机执行,所以直接使用127,远程使用局域网ip,用户名root,密码1

查看docker运行状态,如图running表示正常运行