前幾天由於重啟了服務器,docker配置的網絡出了些問題導致在docker容器中安裝的mysql識別用戶權限時發生錯誤。(從宿主機A以user身份 登入到容器B中安裝的Mysql時,用戶竟然不是user@A 導致沒有表的寫權限。)
在網上查找解決方法的時候手賤運行了
1 docker network prune
結果把容器正在使用的網絡給刪除了。。。-_-||
導致再運行 docker start 啟動容器的時候報錯:Error response from daemon: network XXX not found
就算是create了新的transparent network 再connect 也無濟於事,還是報同樣的錯誤。
經過研究發現,就算網絡已經被刪除了,container在啟動時依然會使用該網絡。所以考慮先disconnect已經刪除了的網絡,再connect新建的網絡。
1 docker network create -d transparent my-transparent-network2 2 docker stop mysqltest #需要停止容器后在對network進行操作。 3 docker network disconnect my-transparent-network-1 mysqltest 4 docker network connect my-transparent-network mysqltest
然后再運行docker start 就可以正常啟動container了。