docker启动容器报错:Error response from daemon: network b295f6993316da7f088e1d not found
docker启动容器报错
简单描述:
当时公司要求要部署grafana可视化组件然后集成tdengine,在本机是测试好了,然后要把容器导入到内网服务器,然后在服务器上面grafana启动大概有1分钟容器就会自己停止。然后我又去测试,我先把容器down掉了,但是这时候问题就出现了,因为我的docker-compose配置文件里面不只这一个容器,还有hadoop集群的容器,都是使用的同一个网络,但是我启动容器的时候只启动的是grafana,当我down掉这个容器的时候,如果没有其他容器使用这个网络,就会把网络也删除掉,但是我其他容器也是使用的这个网络(但是他们没有启动),所以后来启动的时候就会报这个错误。
解决方案
解决方案有以下几种方法:
1)可以把容器导出,然后作为新的镜像导入,在重新给他们创建网络
2)直接使用然后再使用
docker-compose down(注意:如果你没有把容器的配置持久化,那么在你down掉的时候,这些文件也会被删除)
docker-compose up
3)因为我里面有hadoop集群,有很多配置,我记不太清有哪些配置没有被持久化,所以我找了另一种解决方法,就是把原来的容器连接的网络给断开,然后再给他们创建一个新的网络,让他们连接上去
我的解决方案:
# 把启动失败的容器断开网络连接
docker network disconnect -f b295f6993316da7f088e1d6746a67f585d874fc9d3d63dac435adbea20ad9d00 hadoop102 2>/dev/null
-f: 标识强制断开网络,即使网络不存在
2>/dev/null: 是将标准错误(stderr)重定向到 /dev/null,即丢弃错误信息。这样做的原因是,如果容器原本就没有连接到该网络,或者网络不存在,docker network disconnect 命令会输出错误信息。通过重定向标准错误,可以让这些错误信息不显示在终端上,使输出更整洁
# 可以使用以下命令查看现在容器连接的网络是哪个
docker ps -a --format "table {{.Names}} {{.Networks}}"
docker ps: 查看容器列表的基础命令
-a: 显示所有容器(包括停止的),不加 -a 只显示运行中的
--format: 指定输出格式
"table {{.Names}} {{.Networks}}" - 格式化输出:
table:以表格形式显示
{{.Names}}:显示容器名称
:制表符(用于列对齐)
{{.Networks}}:显示容器连接的网络
# 重新连接新网络(我这里的新网络是我删除以后,使用up启动的时候会给你新建一个,但是你的容器还保留着原来的网络id)
docker network connect bigdata_images_bigdata-net hadoop102
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


