今天遇到一个非常奇葩的情况就是当更新完docker镜像后,运行docker-compose up -d 出现了Bind for 0.0.0.0:xxxx failed: port is already allocated 的情况,通过netstat -ap | grep xxxx 之后发现时docker的某个进程一直占用这个端口而导致服务无法重新启动。
通过一系列的解决方法:
比如kill进程,重启docker等方式都没有成功。之后分享一个方法希望可以给遇到同样问题的同学一种解决思路。
sudo cp /var/lib/docker/network/files/local-kv.db /var/lib/docker/network/files/local-kv.db_bk
sudo rm /var/lib/docker/network/files/local-kv.db
sudo docker-compose up -d
补充:docker端口被占用解决方法 “port is already allocated”
docker启动程序显示 “port is already allocated”,尝试了以下方法
1. 通过重启docker
2. 重启电脑
3. 查看所占用的端口对应的程序,kill
4. stop和rm所有的docker程序
都不起作用。
解决的方法
是找到对应的工作目录下的docker-compose.yml文件,修改所占用的端口为其他端口就解决了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。