昨晚公司运维说机房要停电,然后今天上午来公司发现,之前docker起的容器启动不起来了,报错

Error response from daemon: Cannot restart container redis: error creating overlay mount to /var/lib/docker/overlay2/5ae9f9cd84696280d193923f9cde8ab6ddcd99d9bb56df633177c5326af1ebcf/merged: invalid argument

大概是这样,查询了一下问题和资料,做一些记录

首先,我查询了服务器上的docker配置文件

vim /etc/sysconfig/docker-storage

发现原来就是使用overlay2开启的存储

DOCKER_STORAGE_OPTIONS="--storage-driver overlay2 "
 

其次,检查了docker启动的配置文件

vim /etc/sysconfig/docker

发现启动docker的时候,docker的selinux是开启状态

这里 我们不对原来的配置文件做任何的修改,查阅资料发现,物理机重启以后selinux是关闭状态,遂验证

sestatus

SELinux status:                 disabled
 

所以,问题的原因就是,机器启动的docker容器是selinux-enable状态下启动的,而物理机重启以后,selinux是关闭状态。

解决办法

1. 打开物理机的selinux,重启物理机

2.修改容器内配置文件,我的容器存储地址为

/var/lib/docker/containers/

cd到这个目录下,然后可以看到

分别进入每个容器,修改其config.v2.json文件

将  MountLabel  和 ProcessLabel 这两个key 对应的value 置为空即可。

 重启docker服务,重启容器就好了。

资料参考: 

启动docker容器时的Error response from daemon: devmapper: Error mounting: invalid argument. 错误解决

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐