Skip to content

TrueNas Scale

jlmkr

创建监狱 jlmkr create JAILNAME

开始监狱 jlmkr start JAILNAME

停止监狱 jlmkr stop JAILNAME

检查监狱状态 jlmkr status JAILNAME

删除监狱并删除其文件(需要确认) jlmkr remove JAILNAME

查看监狱列表(包括正在运行、未运行、发行版、启动状态和 IP) jlmkr list

查看正在运行的监狱列表 machinectl list

从 TrueNAS shell 在监狱内执行命令 jlmkr exec JAILNAME COMMAND

从 TrueNAS shell 在监狱内执行 bash 命令 jlmkr exec JAILNAME bash -c 'BASHCOMMAND'

切换到监狱的外壳 machinectl shell JAILNAME machinectl shell myjail

查看监狱的日志 jlmkr log JAILNAME

编辑监狱的配置 jlmkr edit JAILNAME

说明

使用jlmkr list查看正在运行的 jail,比如myjail 使用machinectl shell myjail进入myjail 切换到监狱之后先安装组件

bash
sudo apt update
sudo apt install nano wget curl git

然后就可以正常运行 debian 命令安装 docker

bash
apt install curl && cd /tmp && curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh && cd ~ && docker

链接

https://github.com/Jip-Hop/jailmaker/blob/main/docs

关于挂载目录

--bind 添加到 systemd_nspawn_default_args= 最后即可

PS 按照道理 systemd_nspawn_user_args 和 systemd_nspawn_default_args 相同,但是 systemd_nspawn_default_args 比较有效

例子

--bind='/homePath:/jailPath'

备注

--bind='/mnt/data/docker/:/jail/docker' --bind='/mnt/data/vcloud/:/home/vcloud'

关于权限问题,会碰到 Permission denied (you must be root)

添加 systemd_nspawn_default_args 部分--capability=all

error setting interface IPv6 to <nil>

docker 大于 26.0.2 的版本会尝试设置 ipv6,但是 trueNas 并不能设置 net,请安装 26.0.1 版本的 docker 27 版本可以直接创建启用 v6 的网络,启用 v6 可能就不会去尝试禁用 v6 导致出错了 ···But, it's easier to create a docker network with IPv6 enabled, so that it doesn't need to be disabled on IPv4- only interfaces. It's now just --ipv6 in the network create command, or enable_ipv6: true in compose. ···

bash
apt-get install docker-ce=5:26.0.1-1~debian.12~bookworm docker-ce-cli=5:26.0.1-1~debian.12~bookworm