在 Termux 中安装 Docker

在 Termux 中安装 Docker

本仓库包含了如何在 Termux(一个强大的 Android 终端模拟器)中安装 Docker 的说明。

安装前提

在继续安装之前,请确保你具备以下前提条件:

  • 已安装 Termux 的 Android 设备。你可以从 F-Droid 应用商店下载 Termux。
  • 稳定的互联网连接。

安装步骤

按照以下步骤在 Termux 中安装 Docker:

  1. 在 Android 设备上打开 Termux。

  2. 更新和升级包,运行以下命令:

bash 复制代码
pkg update -y && pkg upgrade -y
  1. 安装必要的依赖,运行以下命令:
bash 复制代码
pkg install qemu-utils qemu-common qemu-system-x86_64-headless wget -y
  1. 创建一个单独的目录:
bash 复制代码
mkdir alpine && cd alpine
  1. 下载 Alpine Linux 3.20.2(虚拟优化版)ISO:
bash 复制代码
wget http://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-virt-3.20.2-x86_64.iso
  1. 创建磁盘(请注意,实际占用空间不会是 5GB,而大约是 500-600MB):
bash 复制代码
qemu-img create -f qcow2 alpine.img 5G
  1. 启动它:
    我们使用 1024MB 内存和 2 个 CPU 核心。
bash 复制代码
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -cdrom alpine-virt-3.20.2-x86_64.iso -nographic alpine.img

你可以使用 nproc 查看可用的 CPU 核心数,使用 free -m | grep -oP '\d+' | head -n 1 查看总内存。

  1. 使用用户名 root 登录(无需密码)。

  2. 设置网络(按 Enter 使用默认设置):

bash 复制代码
localhost:~# setup-interfaces
 Available interfaces are: eth0.
 Enter '?' for help on bridges, bonding and vlans.
 Which one do you want to initialize? (or '?' or 'done') [eth0]
 Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]
 Do you want to do any manual network configuration? [no]

localhost:~#

bash 复制代码
ifup eth0
  1. 创建一个答复文件以加速安装:
bash 复制代码
wget https://raw.githubusercontent.com/cyberkernelofficial/docker-in-termux/main/answerfile

注意: 如果看到类似这样的错误:wget: bad address 'gist.githubusercontent.com',请运行以下命令:

bash 复制代码
echo -e "nameserver 192.168.1.1\nnameserver 1.1.1.1" > /etc/resolv.conf
  1. 打补丁以启用启动时的串行控制台输出:
bash 复制代码
sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk
  1. 运行 setup 安装到磁盘:
bash 复制代码
setup-alpine -f answerfile
  1. 安装完成后,关闭虚拟机(命令 poweroff)。

  2. 不带 CD-ROM 再次启动:

bash 复制代码
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img

A -
nano run_qemu.sh

在文本编辑器中,写入以下内容:

bash 复制代码
#!/bin/bash
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img

保存并关闭文件。在 nano 中,可以按 Ctrl+X,然后按 Y 保存,最后按 Enter 确认文件名。

B - chmod 命令:chmod +x run_qemu.sh

C - ./run_qemu.sh

  1. 更新系统并安装 Docker:
bash 复制代码
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

apk update && apk add docker
  1. 启动 Docker:
bash 复制代码
service docker start
  1. 设置 Docker 开机启动:
bash 复制代码
rc-update add docker
  1. 检查 Docker 是否成功安装:
bash 复制代码
docker run hello-world

一些常用快捷键

  • Ctrl+a x: 退出仿真
  • Ctrl+a h: 切换 QEMU 控制台

使用

现在在 Termux 中安装了 Docker,你可以开始使用它来管理和运行 Android 设备上的容器。有关如何使用 Docker 的更多信息,请参考官方 Docker 文档

致谢

  • 本文灵感来自:
bash 复制代码
https://gist.github.com/oofnikj/e79aef095cd08756f7f26ed244355d62
https://github.com/cyberkernelofficial
相关推荐
nbsaas-boot6 小时前
软件开发最核心的理念:接口化与组件化
开发语言
数据知道6 小时前
PostgreSQL 性能优化:连接数过多的原因分析与连接池方案
数据库·postgresql·性能优化
怣506 小时前
MySQL子查询实战指南:数据操作(增删改查)与通用表达式
数据库·chrome·mysql
lsx2024066 小时前
Java 对象概述
开发语言
范纹杉想快点毕业6 小时前
从单片机基础到程序框架:构建嵌入式系统的完整路径
数据库·mongodb
啊阿狸不会拉杆6 小时前
《机器学习导论》第 9 章-决策树
人工智能·python·算法·决策树·机器学习·数据挖掘·剪枝
Mr_Xuhhh6 小时前
C++11实现线程池
开发语言·c++·算法
数据知道6 小时前
PostgreSQL性能优化:如何定期清理无用索引以释放磁盘空间(索引膨胀监控)
数据库·postgresql·性能优化
喵叔哟6 小时前
67.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--分摊功能总体设计与业务流程
数据库·微服务·架构
喵手6 小时前
Python爬虫实战:城市停车收费标准自动化采集系统 - 让停车费透明化的技术实践(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·城市停车收费标准·采集城市停车收费数据·采集停车数据csv文件导出