You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Docker使用sysbox-runc作为运行时创建容器失败求助

问题描述

在Ubuntu系统中配置sysbox-runc作为Docker运行时,sysbox-runc本身可正常运行,但执行容器创建命令时失败。

环境细节

  • 系统:Ubuntu
  • 操作身份:root用户
  • 默认runc运行时可正常创建容器

执行命令

docker run --runtime=sysbox-runc nginx

报错信息

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: container_linux.go:425: starting container process caused: process_linux.go:607: container init caused: process_linux.go:578: handleReqOp caused: rootfs_init_linux.go:366: failed to mkdirall /var/lib/sysbox/shiftfs/2e6d4302-28cd-4d9d-827e-6088b8b34e89/var/lib/kubelet: mkdir /var/lib/sysbox/shiftfs/2e6d4302-28cd-4d9d-827e-6088b8b34e89/var/lib/kubelet: value too large for defined data type caused: mkdir /var/lib/sysbox/shiftfs/2e6d4302-28cd-4d9d-827e-6088b8b34e89/var/lib/kubelet: value too large for defined data type: unknown.
ERRO[0000] error waiting for container: context canceled

可能的解决方法

1. 检查文件系统类型

"value too large for defined data type" 通常与文件系统不支持大文件或特定inode属性相关。先确认/var/lib/sysbox所在分区的文件系统:

df -T /var/lib/sysbox
  • 若为ext3,建议升级为ext4(ext4原生支持更大的文件和inode容量);
  • 若需保留ext3,挂载时添加large_files选项,修改/etc/fstab后重新挂载。

2. 验证shiftfs模块与用户命名空间配置

sysbox依赖shiftfs实现用户命名空间映射,检查模块加载状态:

lsmod | grep shiftfs

未加载则手动加载:

modprobe shiftfs

同时确保Docker启用了用户命名空间隔离,编辑/etc/docker/daemon.json添加:

{
  "userns-remap": "default"
}

修改后重启Docker服务:

systemctl restart docker

3. 清理sysbox缓存目录

缓存目录可能存在损坏的元数据文件,清理后重试:

rm -rf /var/lib/sysbox/shiftfs/*
systemctl restart docker sysbox

4. 核对版本兼容性

确认sysbox-runc与Docker版本兼容,建议升级至双方最新稳定版:

sysbox-runc --version
docker --version

版本不匹配时,重新安装对应兼容版本的sysbox。

内容的提问来源于stack exchange,提问作者Thilee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:13:35