今天遇到一個(gè)非常奇葩的情況就是當(dāng)更新完docker鏡像后,運(yùn)行docker-compose up -d 出現(xiàn)了Bind for 0.0.0.0:xxxx failed: port is already allocated 的情況,通過(guò)netstat -ap | grep xxxx 之后發(fā)現(xiàn)時(shí)docker的某個(gè)進(jìn)程一直占用這個(gè)端口而導(dǎo)致服務(wù)無(wú)法重新啟動(dòng)。
通過(guò)一系列的解決方法:
比如kill進(jìn)程,重啟docker等方式都沒(méi)有成功。之后分享一個(gè)方法希望可以給遇到同樣問(wèn)題的同學(xué)一種解決思路。
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
補(bǔ)充:docker端口被占用解決方法 “port is already allocated”
docker啟動(dòng)程序顯示 “port is already allocated”,嘗試了以下方法
1. 通過(guò)重啟docker
2. 重啟電腦
3. 查看所占用的端口對(duì)應(yīng)的程序,kill
4. stop和rm所有的docker程序
都不起作用。
解決的方法
是找到對(duì)應(yīng)的工作目錄下的docker-compose.yml文件,修改所占用的端口為其他端口就解決了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。