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:~#
posted @   樱花颂  阅读(5104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示