lihongjie0209 / myblog

4 stars 0 forks source link

Docker 启动失败问题解决方案 #194

Open lihongjie0209 opened 3 years ago

lihongjie0209 commented 3 years ago

文件系统只读挂载

journalctl -u docker
Oct 11 13:28:53 localhost.localdomain dockerd[1035]: chmod /var/lib/docker: read-only file system

操作系统异常关机之后重新启动文件系统会在特定的情况下被只读挂载

mount 命令可以查看到挂载参数为 ro

[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part 
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0   10G  0 part /ext4
sr0              11:0    1 1024M  0 rom  
[root@localhost ~]# mount

/dev/mapper/centos-root on / type xfs (ro,relatime,attr2,inode64,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=24,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14327)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
/dev/sdb1 on /ext4 type xfs (rw,relatime,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=179708k,mode=700)

解决方法

如果文件系统没有损坏, 那么重新挂载就好了

mount -o remount rw /

如果文件系统有损坏, 那么使用相应的工具修复之后再挂载.

unknown service containerd.services.namespaces.v1.Namespaces

failed to start daemon: failed to dial "/run/containerd/containerd.sock": unknown service containerd.services.namespaces.v1.Namespaces: not implemented

这个问题是由于docker依赖的服务containerd状态异常, 重启就可以了


systemctl stop containerd
systemctl start containerd

#启动docker
systemctl start docker.service