docker常見問題修復方法


一、運行容器報錯:Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed

解決:

metadata目錄在 docker info查看

service docker stop
thin_check /var/lib/docker/devicemapper/devicemapper/metadata
thin_check --clear-needs-check-flag /var/lib/docker/devicemapper/devicemapper/metadata
service docker start

 

二、Error running DeviceCreate (ActivateDevice) dm_task_run failed

重啟docker服務器后 遇到 ‘device or resource busy’錯誤
如果有container在運行的時候重啟 docker 服務, 可能會導致 container無法啟動, 錯誤信息類似於:

Error response from daemon: Cannot start container zookeeper: Error getting container ddf1dd91bbf46dc648268327f8f7c6fffaf2f19cda5cf1d97fdc701016d4332c from driver devicemapper: Error mounting '/dev/mapper/docker-8:1-525372-ddf1dd91bbf46dc648268327f8f7c6fffaf2f19cda5cf1d97fdc701016d4332c' on '/var/lib/docker/devicemapper/mnt/ddf1dd91bbf46dc648268327f8f7c6fffaf2f19cda5cf1d97fdc701016d4332c': device or resource busy 2015/01/26 04:42:07 Error: failed to start one or more containers

或者:

d2859bd1f84b: Error pulling image (latest) from xxxxxx, Driver devicemapper failed to create image rootfs e6158e7962db43274de40fc3db65ad64811d43fe342dea633df20639f5a4e3cd: device e6158e7962db43274de40fc3db65ad64811d43fe342dea633df20639f5a4e3cd already exists 43fe342dea633df20639f5a4e3cd already exists c049b2b: Download complete e6158e7962db: Error downloading dependent layers

解決:

這是一個Docker的 bug ,解決方式是先找出沒有umount的路徑

cat /proc/mounts | grep "mapper/docker" | awk '{print $2}'
然后依次
umount

 

三、[8] System error: fork/exec /usr/bin/docker: cannot allocate memory問題

The fix for me was to add swapspace. By default my digitalocean droplet didn’t come with any swap!

dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
chmod 600 /root/myswapfile
mkswap -f /root/myswapfile
swapon /root/myswapfile

 

四、 防火牆變動異常

一般異常為:

Error response from daemon: Cannot start container web: iptables failed: iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 32797 -j DNAT --to-destination 172.17.0.30:5000 ! -i docker0: iptables: No chain/target/match by that name.

解決辦法:重建docker0網絡恢復:

關閉當前防火牆

service iptables stop
重啟docker重新建立防火牆規則
service docker restart
根據需求啟停容器
docker restart[stop] 容器號

 

 

參考:https://blog.csdn.net/m0_38012126/article/details/83721501


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM