在docker容器內無法刪除檔案
dockerfile裡
或者在容器內執行完rm -rf之後,檔案全部變成??? ???
centos預設使用的是xfs檔案系統,與docker預設的overlay2儲存驅動不匹配,因此無法刪除
具體可以參考一下**:
1. 必須在格式化為xfs的時候,指定ftype=1,不然docker可能會出現未知錯誤
檢視當前作業系統是否支援overlay如果沒有輸出,表示不支援,如果是以下結果,表示支援lsmod|grep over
可以通過以下命令開啟overlay
modprobe overlaydocker官方建議使用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_type0表示不支援
1. 只能通過重做檔案系統來解決,不能在已經存在的作業系統上進行修改
備份資料
重新建立檔案系統
恢復備份資料
mkfs.xfs -n ftype=1 /path/to/your/device2. 第乙個方法太複雜/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...