使用 Docker 碰到的各种问题集合

452 阅读1分钟

启动容器端口映射错误

报错信息:

Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen (4127da7466709fd45695a1fbe98e13c2ac30c2a554e18fb902ef5a03ba308438): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9000 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1))
Error: failed to start containers: d5b2bd5a7bc4

原因:

Docker 服务启动时定义的自定义链 DOCKER 由于某种原因被清掉。

解决办法:

重启 Docker 服务即可重新生成自定义链 DOCKER

Dockers 执行 shell 异常终止

错误信息:

standard_init_linux.go:207: exec user process caused "no such file or directory"

原因:

在 windows 系统上以 dos 格式 shell 脚本导致的编码错误。可以使用下面命令确定是否是这个原因:

cat -v run.sh

// 如果输出结果类似 #!/bin/bash^M 一样行尾有个 ^M 的话,
// 就可以确定是因为编码引起的

解决办法:

# yum install dos2unix
# dos2unix run.sh

通过 dos2unix 将 dos 格式转换成 unix 格式即可。