Docker常见异常处理(持续更新)

1. 启动docker时映射到宿主机时出现/usr/bin/docker-current: Error response from daemon: driver failed...的解决方案

启动docker映射到宿主机时出现如下错误时:

/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint jovial_saha (5f31b67b738bca942f993bbb75bd363dff460b2243dff5bd940991d2ffd1346c): Bind for 0.0.0.0:8080 failed: port is already allocated.

这是由于来自守护进程的错误响应,而致使外部连接失败。解决的办法就是将其docker进程 kill掉,然后再 清空掉iptables下nat表下的所有链(规则) 。最后,将 docker的网桥删除,并重启docker服务.

[root@7con ] pkill docker                       #终止进程
[root@7con ] iptables -t nat -F                 #清空nat表的所有链
[root@7con ] ifconfig docker0 down        		#停止docker默认网桥
[root@7con ] yum install bridge-utils -y	# 部分机器是无法使用brctl,所以需要提前安装
[root@7con ] brctl delbr docker0                #删除网桥  
[root@7con ] systemctl restart docker           #重启docker

重启后不出以意外的话就可以了。

2.service endpoint with name xxx already exists ( docker 已删除的容器却依旧存在)

(1)启动服务报错如题

确认 我已经 docker rm -f XXX 了。也确认各个容器端口并不重复。

重新启动容器服务依旧报错:

意思是这个端口已经被名为xxx的容器占用了。 而执行 docker ps 又找不到这个容器,这种情况,通常是xxx容器没有正常删除导致的。这时我们可以使用命令:

# 查看已连接的容器
docker network inspect bridge

可以看到,此时 stoic_varahamihira 这 个容器都还和docker保持连接的 。

(2)断开其网络连接 :

#断开连接
docker network disconnect --force bridge stoic_varahamihira

再次查看,stoic_varahamihira 已不存在:

之后重新启动服务,发现可以成功启动,问题解决

留言区

还能输入500个字符