Distrobox---在linux下运行的,类似于termux功能的容器

一直喜欢在手机下用termux的原因是,我随时可以采用anlinux的方式,来在proot的容器下运行一套linux, 然后做各种验证,不会污染别的系统。可是必竟手机的限制还是大啊。总想着我的PC机上能不能装termux,今天竟让我找到了,原来linux原生就有这种功能的软件,它就是Distrobox

一 简介
  1. distrobox create 创建一个新的容器环境
  2. distrobox enter 进入一个己创建的容器环境
  3. distrobox list 列出所有由distrobox创建过的容器
  4. distrobox stop 停止一个正在运行的容器
  5. distrobox rm 删除一个容器
  6. distrobox upgrade 升级容器内的软件包
二 创建容器常用参数
  1. –name :为容器指定一个名字,如 ubuntu20,debian12等
  2. –image: 指定要使用的镜像 (如 ubuntu:22.04, archlinux:latest)
  3. –home:为容器指定一个独立的Home目录,以免污染宿主机的home目录
  4. –additional-packages / -ap: 在创建时预装软件包(如 git vim curl)。
  5. –init-hooks: 在容器初始化完成后执行的命令。
  6. –root / -r: 以 root 权限启动容器。
  7. –nvidia: 尝试集成主机的 NVIDIA 驱动,用于 GPU 加速
三 列子

例子 1.

1
2
3
# 创建一个名为 my-ubuntu 的 Ubuntu 22.04 环境,并预装 git 和 vim
distrobox create --image ubuntu:22.04 --name my-ubuntu --additional-packages "git vim"

例子 2.

1
2
3
4
5
6
7
8
9
10
$ distrobox create \
--name test-debian \
--image debian:bookworm \
--hostname test-debian \
--memory 4G \
--cpus 2 \
--mount ~/work/testdata:/opt/testdata:ro \
--no-home
$ distrobox enter test-debian # 进入刚才创建的环境

参数解释

  1. –memory 4G –cpus 2:限制资源,防止测试程序吃光机器性能
  2. –mount ~/work/testdata:/opt/testdata:ro:只读挂载你宿主机测试素材;不需要可以删掉
  3. –no-home:不把宿主~目录直接映射进容器,防止容器内误删宿主文件(安全推荐)
四 更安全的参数
  1. distrobox ephemeral 创建一个临时容器,退出 shell 后自动销毁,适合一次性任务
1
2
3
4
5
6
distrobox ephemeral \
--image debian:bookworm \
--memory 3G \
--cpus 2 \
--mount ~/work/testdata:/opt/testdata:ro

ephemeral 环境内所有修改,exit 之后全部消失,不要存放重要数据,不留任何痕迹
2. –network none 容器无法联网,防止恶意程序外联下载、窃取信息

1
2
3
4
5
6
distrobox ephemeral \
--image debian:bookworm \
--memory 3G \
--cpus 2 \
--network none