Centos7.2下Dockerfile执行rm提示rm: cannot remove分析

报错信息

Centos7.2下Dockerfile执行rm提示rm: cannot remove xxx Directory not empty问题分析

Dockerfile执行rm操作,docker build最后提示rm: cannot remove xxx Directory not empty

rm: can’t remove ‘/opt/nginx’: Directory not empty
rm: can’t remove ‘/opt/openssl’: Directory not empty

参考

经过一番搜索查找,github上有人提过,可以参考

  1. https://github.com/docker/docker/issues/31717
  2. https://github.com/docker/docker/issues/27358
  3. https://github.com/docker/docker/issues/27214

原因所在

是Centos7.2的内核有BUG,也可以说是和docker版本不兼容,Centos7.3已修复,详细见: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.2_Release_Notes/technology-preview-file_systems.html

检查分区是否是xfs

df -T

再检查ftype是否为1,如果是0那就有这个问题

xfs_info /dev/sda1| grep ftype

检查docker存储驱动程序,一般默认是overlay

docker info |grep “Storage Driver”

解决方法

  1. 对docker使用分区重新分区 mkfs -t xfs -n ftype=1 /PATH/TO/DEVICE
  2. 重新装centos 7.3系统
  3. 修改docker存储驱动程序,修改 /etc/systemd/system/docker.service配置,这项: ExecStart=/usr/bin/dockerd –storage-driver=devicemapper 增加这个–storage-driver=devicemapper,需restart生效,如下:
systemctl   daemon-reload
service docker restart

本文链接:参与评论 »

--EOF--

专题「docker」的其它文章 »

Comments