docker-compose启动报错:network mysql8已声明为外部但未找到
解决Docker Compose外部网络找不到的问题
问题根源:docker system prune --all会清理所有未被运行中容器使用的资源,包括你之前创建的mysql8外部网络。而你在docker-compose.yml里声明这个网络是external: true,意味着Docker Compose不会自动创建它,所以启动时会报错找不到。
解决步骤:
- 先手动创建这个缺失的外部网络:
docker network create mysql8 - 执行完上面的命令后,再运行
docker-compose up,就能正常找到网络并启动容器了。
额外优化方案:
如果你不想每次执行prune后都手动重建网络,可以修改docker-compose.yml,去掉external: true配置,让Docker Compose自动管理这个网络:
networks: mysql8: # 移除external: true,Compose会在启动时自动创建网络,停止后若未被其他容器使用,prune仍会清理,但下次up会自动重建
如果手动创建网络还是失败(和你之前遇到的docker create network失败情况一样),可以尝试:
- 重启Docker服务(不同系统命令不同):
# Linux系统 sudo systemctl restart docker # Windows/macOS直接重启Docker Desktop应用 - 检查当前用户是否有Docker操作权限,必要时用
sudo执行命令。
内容的提问来源于stack exchange,提问作者Booski
相关产品推荐
相关产品推荐

