• 欢迎访问Ppabc博客网站,专注于Linux、CentOS、Apache、Nginx、MySQL、PHP等开源工具安装优化的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入Ppabc博客
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏Ppabc博客吧

Dockerfile执行rm提示rm: cannot remove分析

docker ppabc 1年前 (2017-03-15) 1633次浏览

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 上有人提过,可以参考
https://github.com/docker/docker/issues/31717
https://github.com/docker/docker/issues/27358
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

20170315151912

注意:修改 docker 存储驱动程序,会导致 docker 下的容器和镜像全部丢失,需重新 pull.


Selinux 中国 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Dockerfile 执行 rm 提示 rm: cannot remove 分析
喜欢 (0)