首页 > 其他分享 >利用termux和qemu虚拟机使用docker

利用termux和qemu虚拟机使用docker

时间:2024-03-23 11:22:52浏览次数:25  
标签:虚拟机 termux 64 docker qemu alpine

操作前提

由于大部分手机的内核并不满足使用docker的要求,因此需要用root权限修改手机部分kernel来满足,但是手机root并不适用所有手机,而且root也有一定的风险,因此使用termux终端来通过qemu虚拟机进行容器化操作可以实现满足docker运行的要求。

操作步骤

  1. 安装termux或者zerotermux或者其他类似终端
    该软件作为开源项目可从github或gitee等网站进行下载
  2. 安装qemu虚拟机
    进入termux终端后进行换源并安装qemu套件
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
apt update && apt upgrade
apt install qemu*
wget https://mirrors.aliyun.com/alpine/v3.15/releases/x86_64/alpine-extended-3.15.0-x86_64.iso
  1. 创建虚拟磁盘并安装alpine虚拟机
mkdir alpine && cd alpine
qemu-img create -f qcow2 alpine.qcow2 50G
qemu-system-x86_64 -smp 2 -m 2048 \
  -drive file=alpine.qcow2,if=virtio \
  -netdev user,id=n1,hostfwd=tcp::2222-:22 \
  -device virtio-net,netdev=n1 \
  -cdrom alpine-virt-3.15.0-x86_64.iso -boot d \
  -nographic

此时进入alpine安装,具体参考我的alpine安装教程即可
4. 编写开机脚本

nano run.sh

填入以下内容:

qemu-system-x86_64 -smp 2 -m 2048 \
  -drive file=alpine.qcow2,if=virtio \
  -netdev user,id=n1,hostfwd=tcp::2222-:22 \
  -device virtio-net,netdev=n1 \
  -nographic
  1. 重启虚拟机并安装docker
bash run.sh
apk add docker && apk add docker-compose
service docker start
rc-update add docker boot
docker run hello-world

至此,可以愉快的使用docker了

反思与总结

我本人尝试了许多次手机安装docker的操作,这种借助qemu虚拟机的方法十分局限,因为qemu无法调用kvm,所以十分卡顿,建议仅作为一种尝试,并不建议日常使用

标签:虚拟机,termux,64,docker,qemu,alpine
From: https://www.cnblogs.com/lcyc/p/18090889

相关文章

  • 多开随机硬件防封过检测VM虚拟机过鲁大师 NP,HP,VMP,SE,TMD,WL,ENIGMA,SP等检测。
    网上各种虚拟机过检测多开,这些都是吹的天花乱坠,但是卖的虚拟机只是一个硬件复制多台,这样多开稳死,过检测也无济于事。我们的随机硬件虚拟机就是解决了这个痛点,每个新建立的虚拟机都是不同硬件达到多开更稳更安心的程度,这款多开虚拟机是win7/win10高帧版本,流畅自如。支持很多游戏......
  • Docker最有价值的“云”(容器级虚拟化)Docker安装
    Docker,封装我们的应用。(比如Apache、php、MySQL等。)被Docker封装的应用,会变成Docker里面的一个集装箱。这个集装箱只要分享,一打开就是已经安装好的环境。我这里是跟上一篇文章连着的,但是大家的虚拟机要是刚创建的,没有进行任何环境的安装的话,不用进行【还原快照】这一步......
  • milvus+attu向量数据库docker安装踩坑记录
    milvus向量数据库安装按照官方教程比较顺利,但他的可视化管理界面attu安装成功却一直连接不上,找了半天发现时版本匹配的问题,现把踩坑记录分享给大家。环境前提:docker-compse已经安装1.按照官网下载docker-compose文件mkdirmilvuscdmilvuswgethttps://github.com/milv......
  • CentOS系统安装docker
    来自chatGPT在CentOS7.9系统上安装Docker,你可以遵循以下步骤:更新你的系统:首先,确保你的系统是最新的。这可以通过运行下面的命令来实现:sudoyumupdate安装必要的包:为了使得yum源支持https,你需要安装几个必要的包:sudoyuminstall-yyum-utilsdevice-mapper-persisten......
  • docker基础(八)之docker commit,docker tag,docker cp,docker diff
    文章目录概述dockercommit语法OPTIONS说明:dockercommit--help实例使用场景dockertag语法示例使用场景为什么要这样做呢?dockercp语法OPTIONS说明:dockercp--help示例dockerdiff语法示例使用场景:概述用于学习和记录,以下内容来自chatgpt3.5,网络等,补充例子。......
  • docker 基本命令 以及项目部署
    1.docker基础命令   #启动Docker   systemctlstartdocker   #停止Docker   systemctlstopdocker   #重启   systemctlrestartdocker   #设置开机自启   systemctlenabledocker   #执行dockerps命令,如果不报错,说......
  • 2020-6-30-Docker
    基础概念、安装与卸载、命令、部署、可视化portainer、自制镜像、容器的卷技术、DockerFile、Docker网络、Springboot镜像、Compose基础概念1虚拟技术和容器技术对比虚拟技术容器技术原理虚拟出硬件,运行一个完整的操作系统容器应用直接运行在宿主机,无内核,相互隔离......
  • 2020-8-6-JVM虚拟机
    运行时数据区域、溢出、垃圾收集、问题解决运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域1)程序计数器(1)一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器(2)字节码解释器工作时就是通过改变这个计数器的......
  • Docker-compose安装Elasticsearch启动报错(挂载volume后)
    错误提示:"stacktrace":["org.elasticsearch.bootstrap.StartupException:ElasticsearchException[failedtobindservice];nested:AccessDeniedException[/usr/share/elasticsearch/data/nodes];"docker-compose.yamldocker-compose.yamlversion:......
  • [Container] Docker Architecture
    IdentifiyDockerarchitecturecomponenetsClient:sendinstructionsorcommandtotheDockerhostserverhost:keepadaemonasdockerd,listensforDockerAPIreqeustsorcommandsuchas"dockerrun"andprocessesthosecommands.Daemonbuilds,......