docker 無法釋放端口的解決方案

今天遇到一個非常奇葩的情況就是當更新完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文件,修改所占用的端口為其他端口就解決瞭。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。