使用docker-compose --force-recreate未重建网络,如何修改子网?
修改Docker Compose默认网络子网的简便方法
核心问题
Docker Compose 默认不会自动重建已存在的网络(哪怕子网配置已修改),所以单独执行 docker-compose up -d --force-recreate --remove-orphans 只会重建容器,不会更新网络配置。
简便解决方案
不需要手动逐个停止容器和删除网络,直接执行以下操作:
停止所有关联容器并删除当前默认网络
docker-compose down --remove-orphans该命令会自动处理所有容器的停止操作,同时删除由 Compose 创建的
default_network网络,默认不会删除容器挂载的卷数据(如需保留数据则无需额外参数)。重新启动容器并创建新子网配置的网络
docker-compose up -d --remove-orphans
合并为一行执行:
docker-compose down --remove-orphans && docker-compose up -d --remove-orphans
补充说明
- 若需保留容器卷数据,不要给
down命令添加-v参数,否则会删除所有关联的匿名卷。 - 如果你的网络是标记为
external: true的外部网络,此方法不适用,需手动删除外部网络后再重新创建。
内容的提问来源于stack exchange,提问作者cyanat
相关产品推荐
相关产品推荐

