前几天由于重启了服务器,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了。