天天看點

docker錯誤資訊整理

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

解決方案:重新開機docker

2、Docker無法啟動 Could not find a free IP address range for interface 'docker0' 最友善的解決辦法

2015-09-21 15:44 1294人閱讀 評論(0) 收藏 舉報

轉載自:http://www.bubuko.com/infodetail-969451.html

阿裡雲的CentOS 6.6上安裝Docker會無法啟動,如果直接運作docker -d會看到錯誤提示:

WARN[0000] You are running linux kernel version 2.6.32-573.3.1.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.10.0. 

INFO[0000] [graphdriver] using prior storage driver "devicemapper" 

INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) 

WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1 

FATA[0000] Error starting daemon: Error initializing network controller: Error creating default "bridge" network: can't find an address range for interface "docker0" 

關于docker程序沒起來的原因可能會有很多,比如

子產品沒加載,系統核心版本過低,硬碟空間不足等等

一開始我以為是系統核心版本過低導緻,百度又google了半天,還安裝了3.10的核心庫,都沒用

最後看到有人說,雖然報警建議更新核心到3.10,但意義就是docker宣稱在3.10下是stable,低于3.10不是就不能運作了,隻是unstable而已,docker的依賴核心需要高于2.6.32就可以

其實本處的重要資訊是報錯最後一句,原因就是docker自動嘗試的建立bridge的ip段正好被阿裡雲的路由表完全占據了

詳細原因可以參見這個文章:http://hanjianwei.com/2014/07/30/docker-on-aliyun/

網上有好多類似的解決方法,不過好麻煩,這裡主要說下最友善的解決方法

先su到root

找一下docker的配置檔案: find / -name "docker"

一般會在 /etc/sysconfig/docker

編輯這個檔案 vi /etc/sysconfig/docker

修改other_args=這一行為:other_args=-bip=192.168.100.1/24

儲存退出

可以重新開機docker了

service docker restart

3、docker不能啟動容器,報一下錯誤Error running DeviceCreate (createSnapDevice) dm_task_run failed

1) service docker stop

2) thin_check /home/docker/devicemapper/devicemapper/metadata

3) thin_check --clear-needs-check-flag /home/docker/devicemapper/devicemapper/metadata

4) service docker start

Edit: –clear-needs-check-flag should be --clear-needs-check-flag . Minor but important.

4、重新開機docker伺服器後 遇到 'device or resource busy'錯誤

如果有container在運作的時候重新開機 docker 服務, 可能會導緻 container無法啟動, 錯誤資訊類似于

[plain] view plain copy print?在CODE上檢視代碼片派生到我的代碼片

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}'

然後依次unmount

5、挂載主控端目錄後,在容器内對其進行操作,報“Permission denied”。

可通過兩種方式解決:

1> 關閉selinux。

臨時關閉:# setenforce 0

永久關閉:修改/etc/sysconfig/selinux檔案,将SELINUX的值設定為disabled。

2> 以特權方式啟動容器

指定--privileged參數

如:# docker run -it --privileged -v /test:/soft centos /bin/bash

     本文轉自aaron428 51CTO部落格,原文連結:http://blog.51cto.com/aaronsa/1744651,如需轉載請自行聯系原作者