mkdir: cannot create directory 'cpuset': Read-only file system (docker容器中无法使用service启动ubuntu)
发生的经过:我在docker中运行了ubuntu,然后在这个ubuntu中想要运行docker,虽然安装成功了,但是运行失败,
如下为结果,其中前提是docker中的ubuntu容器默认用户是root,所以该权限已经拿到了可支持的最高。
root@83bae805ed89:/home# service docker start mkdir: cannot create directory 'cpuset': Read-only file system
原因:两中错误可能,一是系统挂载失败,二是权限不足。
- 对于问题一:可以重新挂载
先通过mount查看那些变成了ro(只读),这边建议过滤一下使用 mount | grep -w ro
root@83bae805ed89:/home# mount | grep -w ro sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup type cgroup2 (ro,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot) /dev/nvme0n1p2 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro) /dev/nvme0n1p2 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro) /dev/nvme0n1p2 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro) proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime) proc on /proc/fs type proc (ro,nosuid,nodev,noexec,relatime) proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime) proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime) proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime) tmpfs on /proc/asound type tmpfs (ro,relatime,inode64) tmpfs on /proc/acpi type tmpfs (ro,relatime,inode64) tmpfs on /proc/scsi type tmpfs (ro,relatime,inode64) tmpfs on /sys/firmware type tmpfs (ro,relatime,inode64)
对比我之间可以启动的容器,proc开始为失败的挂载
然后重新挂载
使用 # mount -o remount,rw /proc/bus 或者 # fuser -m /proc/bus
但是我都失败了,所以使用方式二
- 对于问题二,就使用root,如果是本身就是最高权限,然就是在docker run容器时候提高权限,使用 --privileged=true 或者 --privileged
eg:
root@t17257:/# docker run -itd --name node01 --privileged=true ubuntu
或者
root@t17257:/# docker run -itd --name node01 --privileged ubuntu
结果,这其就是service创建文件失败
root@1c4ddefadaef:~# service docker start mount: /sys/fs/cgroup/cpuset: permission denied. mount: /sys/fs/cgroup/cpu: permission denied. mount: /sys/fs/cgroup/cpuacct: permission denied. mount: /sys/fs/cgroup/blkio: permission denied. mount: /sys/fs/cgroup/memory: permission denied. mount: /sys/fs/cgroup/devices: permission denied. mount: /sys/fs/cgroup/freezer: permission denied. mount: /sys/fs/cgroup/net_cls: permission denied. mount: /sys/fs/cgroup/perf_event: permission denied. mount: /sys/fs/cgroup/net_prio: permission denied. mount: /sys/fs/cgroup/hugetlb: permission denied. mount: /sys/fs/cgroup/pids: permission denied. mount: /sys/fs/cgroup/rdma: permission denied. mount: /sys/fs/cgroup/misc: permission denied. * Starting Docker: docker root@1c4ddefadaef:~#
- 虽然还有一些sys的挂载失败,但是docker已经运行成功了:
root@1c4ddefadaef:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@1c4ddefadaef:~#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix