docker容器內無法刪除檔案

2021-09-26 10:29:55 字數 1401 閱讀 3203

在docker容器內無法刪除檔案

dockerfile裡

或者在容器內執行完rm -rf之後,檔案全部變成??? ???

centos預設使用的是xfs檔案系統,與docker預設的overlay2儲存驅動不匹配,因此無法刪除

具體可以參考一下**:

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

0表示不支援

1. 只能通過重做檔案系統來解決,不能在已經存在的作業系統上進行修改

備份資料

重新建立檔案系統

恢復備份資料

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

2. 第乙個方法太複雜

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

systemctl daemon-reload

systemctl restart docker

或者更簡單的方法

修改/etc/docker/daemon.json檔案

然後重啟docker即可 

docker 刪除容器

docker kill docker ps a q 刪除所有已經停止的容器 docker rm docker ps a q 刪除所有未打 dangling 標籤的映象 docker rmi docker images q f dangling true 刪除所有映象 docker rmi docke...

docker容器無法啟動,修改容器內檔案2種方式

把docker容器中的配置檔案複製到主機中,然後在主機中修改,修改完成後再複製到docker容器中 1.複製docker容器的檔案到主機中 docker cp 容器id docker容器中配置檔案路徑 主機路徑docker cp mysql etc mysql my.cnf home my.cnf2...

Docker容器內安裝mysql

docker pull mysql 5.7使 用docker命令啟動 docker run p 3306 3306 name mysql v mydata mysql log var log mysql v mydata mysql data var lib mysql v mydata mysql...