docker容器内无法删除文件
问题:
在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容器内无法删除文件相关推荐
- 如何向docker容器内传文件
Docker容器向宿主机传送文件 格式: docker cp container_id:<docker容器内的路径> <本地保存文件的路径> 比如: docker cp 107 ...
- 基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试
原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part11-run-unit- ...
- 解决Docker容器内安装chrome浏览器无法启动bug
前言 之前有写过一个基于Ubuntu20.04 的Docker容器的可视化Dockerfile,当时默认火狐浏览器,今天要测试一个项目就run了一个可视化容器,但是我需要用到chrome浏览器,于是乎 ...
- 解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设
解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设 或者 curl: 52 Empty reply from ...
- 解决在Docker容器内不能上网的问题
问题描述: 在Docker容器内, 无法ping通外网. #在宿主机中进行如下操作: $ sudo service docker stop #关闭所有正在执行的docker容器.$ cd /etc/d ...
- Docker高级篇-Docker容器内Redis集群配置
Docker容器内Redis集群配置 1.三主三从集成配置 1.1.关闭防火墙.启动docker服务 1.2.新建6个docker容器实例 1.3.进入容器redis-node-1,构建主从关系 1. ...
- 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本
思路 我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作. 使用 sshpass (我的是CentOS 7.9环境) 1.安装sshpass apt-get update //更新一下 apt- ...
- 解决Docker容器内访问宿主机MySQL数据库服务器的问题
解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...
- docker容器内漏洞_如何在2020年发现和修复Docker容器漏洞
docker容器内漏洞 Containerization allows engineering teams to create a sandbox environment in which to ru ...
最新文章
- FreeBSD 6.0架设管理与应用-第三章 UNIX 系统入门
- Linux上oracle的安装
- bzoj 3120 矩阵优化DP
- 【转】简单的java缓存实现
- java lock 对象_Java并发编程锁系列之ReentrantLock对象总结
- redis 集群 分片 扩容_Redis高可用之集群实现原理
- Windows xp LoadPerf系统错误
- 转帖:一份不错的游戏程序书单(比较全面,但都是英文的。。)
- java 线程 数量_Java线程数量随时间增长的原因
- django + mysql 支持表情包
- 安泰测试新手教程-泰克数字示波器使用方法
- 中科院2020计算机sci分区,2020年中科院最新SCI分区表.pdf
- 2018二月安恒月赛WRITE UP
- 【Springboot整合ShardingSphere(ShardingJDBC)】扫盲文(并非代码实战)
- 淘宝新上架的产品如何在站内SEO优化
- <_main__.类名 object at 0x0000000002A7CEB8>
- Cloudera Manager拓展SPARK2-2.3.0.cloudera3-1.cdh5.6.0.p0.1-el6.parcel
- 微信专属输入法你有了吗?防窃听、护隐私
- JavaMai——邮箱验证用户注册
- IOS- 时间格式转换问题(12小时和24小时的区别)