问题:

在docker容器内无法删除文件

dockerfile里

或者在容器内执行完rm -rf之后,文件全部变成??? ???

原因:

centos默认使用的是xfs文件系统,与docker默认的overlay2存储驱动不匹配,因此无法删除

具体可以参考一下网址:https://www.jianshu.com/p/00ffd8df6010

1. 必须在格式化为xfs的时候,指定ftype=1,不然docker可能会出现未知错误

查看当前操作系统是否支持overlay

lsmod|grep over

如果没有输出,表示不支持,如果是以下结果,表示支持

可以通过以下命令开启overlay

modprobe overlay

docker官方建议使用overlay2

2. xfs文件系统的d_type

d_type是Linux内核的一个术语,表示“目录条目类型”,目录条目是文件系统上目录信息的一个数据结构,d_type就是这个数据结果的一个字段

3. docker在overlay2(xfs文件系统)需要d_type

不论是overlay还是overlay2,底层文件系统都是overlayfs,overlayfs文件系统,需要d_type看文件的操作是否被正确的处理

docker info

用来检查docker服务,是否在使用overlay的时候正确使用d_type

如果在不支持d_type的overlay驱动下使用docker,在docker操作文件的时候,可能会遇到一些问题,比如无法删除某些目录或者文件

检测在当前的文件系统,是否支持d_type

xfs_info /

0表示不支持

解决方法:

1. 只能通过重做文件系统来解决,不能在已经存在的操作系统上进行修改

备份数据

重新创建文件系统

恢复备份数据

mkfs.xfs -n ftype=1 /path/to/your/device

2. 第一个方法太复杂

docker换个文件驱动,该systemd unit file, 加参数指定老的devicemapper,不过后果是会把image清空

/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --storage-driver=devicemapper

systemctl daemon-reload

systemctl restart docker

或者更简单的方法

修改/etc/docker/daemon.json文件

{
"live-restore": true,
"registry-mirrors": ["http://dockerhub.azk8s.cn"],
"data-root": "/disk/docker1/nn1",
"storage-driver": "devicemapper"
}

然后重启docker即可

docker容器内无法删除文件相关推荐

  1. 如何向docker容器内传文件

    Docker容器向宿主机传送文件 格式: docker cp container_id:<docker容器内的路径> <本地保存文件的路径> 比如: docker cp 107 ...

  2. 基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试

    原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part11-run-unit- ...

  3. 解决Docker容器内安装chrome浏览器无法启动bug

    前言 之前有写过一个基于Ubuntu20.04 的Docker容器的可视化Dockerfile,当时默认火狐浏览器,今天要测试一个项目就run了一个可视化容器,但是我需要用到chrome浏览器,于是乎 ...

  4. 解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设

    解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设 或者 curl: 52 Empty reply from ...

  5. 解决在Docker容器内不能上网的问题

    问题描述: 在Docker容器内, 无法ping通外网. #在宿主机中进行如下操作: $ sudo service docker stop #关闭所有正在执行的docker容器.$ cd /etc/d ...

  6. Docker高级篇-Docker容器内Redis集群配置

    Docker容器内Redis集群配置 1.三主三从集成配置 1.1.关闭防火墙.启动docker服务 1.2.新建6个docker容器实例 1.3.进入容器redis-node-1,构建主从关系 1. ...

  7. 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    思路 我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作. 使用 sshpass (我的是CentOS 7.9环境) 1.安装sshpass apt-get update //更新一下 apt- ...

  8. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...

  9. docker容器内漏洞_如何在2020年发现和修复Docker容器漏洞

    docker容器内漏洞 Containerization allows engineering teams to create a sandbox environment in which to ru ...

最新文章

  1. FreeBSD 6.0架设管理与应用-第三章 UNIX 系统入门
  2. Linux上oracle的安装
  3. bzoj 3120 矩阵优化DP
  4. 【转】简单的java缓存实现
  5. java lock 对象_Java并发编程锁系列之ReentrantLock对象总结
  6. redis 集群 分片 扩容_Redis高可用之集群实现原理
  7. Windows xp LoadPerf系统错误
  8. 转帖:一份不错的游戏程序书单(比较全面,但都是英文的。。)
  9. java 线程 数量_Java线程数量随时间增长的原因
  10. django + mysql 支持表情包
  11. 安泰测试新手教程-泰克数字示波器使用方法
  12. 中科院2020计算机sci分区,2020年中科院最新SCI分区表.pdf
  13. 2018二月安恒月赛WRITE UP
  14. 【Springboot整合ShardingSphere(ShardingJDBC)】扫盲文(并非代码实战)
  15. 淘宝新上架的产品如何在站内SEO优化
  16. <_main__.类名 object at 0x0000000002A7CEB8>
  17. Cloudera Manager拓展SPARK2-2.3.0.cloudera3-1.cdh5.6.0.p0.1-el6.parcel
  18. 微信专属输入法你有了吗?防窃听、护隐私
  19. JavaMai——邮箱验证用户注册
  20. IOS- 时间格式转换问题(12小时和24小时的区别)

热门文章

  1. 几种主流编程语言的优势与不足
  2. 计算机3维绘图试题,计算机绘图基础复习试题
  3. 数据库系统理论 -- 关系查询处理和查询优化
  4. 总结在线营销的几种方式
  5. mac下无法识别手机usb问题
  6. fusioncharts mysql_FusionCharts功能介绍
  7. java fusioncharts_Java FusionCharts实例 柱状图
  8. 给自己的网站集成搜索引擎收录查询功能
  9. 达梦数据库DM8导出sql脚本
  10. 附加题:设计地图求驾车路径