如何解决无法删除 Fedora 33 和 Docker 上的网桥
我在 Fedora 33 上使用 Docker 20.10.7:
[{'deliveries': [{'items': [{'sku': '1234567','quantity': 2,'delivery_item_id': 456789123},{'sku': '9876543','quantity': 1,'delivery_item_id': 987654321},{'sku': '5432123-4','delivery_item_id': 123456789}],'quotation': {'id': 111111111111111,'created_iso': '2020-01-11T21:48:25.168-03:00','origin_zip_code': '12345678','delivery_options': [{'branch_id': None,'description': 'XPTO Shipping','cubic_weight': '0.0','delivery_note': None,'pickup_enabled': False,'shown_to_client': True,'cd_business_days': 1,'external_group_id': None,'external_stock_id': None,'delivery_method_id': 1104,'scheduling_enabled': False,'final_shipping_cost': 28.95,'delivery_method_name': 'XPTO Shipping','delivery_method_type': 'STD','quotation_difference': 0.0,'initial_shipping_cost': 28.95,'additional_stock_items': None,'logistic_provider_name': 'XPTO','provider_shipping_cost': 27.06,'removed_by_quote_rules': False,'removed_by_return_mode': None,'fallback_delivery_method_id': None,'delivery_estimate_date_max_iso': None,'delivery_estimate_date_min_iso': None,'delivery_estimate_business_days': 6,'delivery_estimate_business_time': None,'fallback_estimate_business_days': None,'delivery_estimate_date_exact_iso': None,'delivery_estimate_display_message': None,'fallback_transit_time_business_days': None,'delivery_estimate_transit_time_business_days': 5},{'branch_id': None,'description': 'XPTO Ex','cubic_weight': '7.224','delivery_method_id': 695,'final_shipping_cost': 34.94,'delivery_method_name': 'XPTO2 Method','initial_shipping_cost': 34.94,'logistic_provider_name': 'Total','provider_shipping_cost': 32.65,'delivery_estimate_date_max_iso': '2020-01-24','delivery_estimate_date_min_iso': '2020-01-20','delivery_estimate_business_days': 8,'delivery_estimate_date_exact_iso': '2020-01-21','delivery_estimate_transit_time_business_days': 7},'description': 'XPOT3','delivery_method_id': 22,'final_shipping_cost': 86.77,'delivery_method_name': 'XPOT3 Std','initial_shipping_cost': 86.77,'logistic_provider_name': 'XPOT3','provider_shipping_cost': 81.09,'description': 'XPOT4','cubic_weight': '12.977','delivery_method_id': 4112,'final_shipping_cost': 99.76,'delivery_method_name': 'XPOT4 Std','initial_shipping_cost': 99.76,'logistic_provider_name': 'XPOT4','provider_shipping_cost': 93.23,'delivery_estimate_business_days': 12,'delivery_estimate_transit_time_business_days': 11},'description': 'XPTO5','cubic_weight': '7.209','delivery_method_id': 1,'final_shipping_cost': 127.64,'delivery_method_name': 'CRR XPTO5','initial_shipping_cost': 127.64,'logistic_provider_name': 'CRR','provider_shipping_cost': 119.29,'delivery_estimate_date_max_iso': '2020-01-25','delivery_estimate_date_min_iso': '2020-01-21','delivery_estimate_business_days': 9,'delivery_estimate_date_exact_iso': '2020-01-24','delivery_estimate_transit_time_business_days': 8},'description': 'XPTO6','delivery_method_id': 2,'final_shipping_cost': 210.66,'delivery_method_name': 'CRR XPTO6','initial_shipping_cost': 210.66,'provider_shipping_cost': 196.88,'delivery_estimate_date_max_iso': '2020-01-20','delivery_estimate_date_min_iso': '2020-01-18','delivery_estimate_date_exact_iso': '2020-01-19','delivery_estimate_transit_time_business_days': 5}],'destination_zip_code': '12345678','additional_information': {'sales_channel': 'mobile-ios','lead_time_business_days': 0}},'stock_location': {'id': 3,'name': 'Location1','petshop': None,'service': None,'zipcode': '12345678','prime_delivery': False,'normal_delivery': True,'petshop_delivery': False,'additional_quotation_cost': 0.0}}]},{'deliveries': [{'items': [{'sku': '1234567','stock_location': {'id': 9,'name': 'Location2','zipcode': '54503010','additional_quotation_cost': 0.0}},{'items': [{'sku': '9876543','delivery_item_id': 987654321}],'quotation': {'id': 222222222222222,'created_iso': '2020-01-11T21:48:25.166-03:00','final_shipping_cost': 6.96,'initial_shipping_cost': 6.96,'provider_shipping_cost': 6.5,'description': 'XPTO2 Ex','cubic_weight': '0.22','final_shipping_cost': 9.82,'initial_shipping_cost': 9.82,'provider_shipping_cost': 9.18,'description': 'XPTO3','delivery_method_id': 714,'final_shipping_cost': 12.27,'delivery_method_name': 'LG XPTO','initial_shipping_cost': 12.27,'logistic_provider_name': 'XPTO3 EACD','provider_shipping_cost': 11.47,'delivery_estimate_date_max_iso': '2020-01-21','delivery_estimate_date_min_iso': '2020-01-19','delivery_estimate_business_days': 7,'delivery_estimate_date_exact_iso': '2020-01-20','delivery_estimate_transit_time_business_days': 6},'cubic_weight': '0.219','final_shipping_cost': 22.48,'delivery_method_name': 'Correios XPTO5','initial_shipping_cost': 22.48,'logistic_provider_name': 'Correios','provider_shipping_cost': 21.01,'final_shipping_cost': 39.88,'delivery_method_name': 'XPOT3 STD','initial_shipping_cost': 39.88,'provider_shipping_cost': 37.27,'final_shipping_cost': 41.94,'initial_shipping_cost': 41.94,'provider_shipping_cost': 39.2,'cubic_weight': '0.395','final_shipping_cost': 97.17,'delivery_method_name': 'XPOT4 STD','initial_shipping_cost': 97.17,'provider_shipping_cost': 90.81,'delivery_estimate_transit_time_business_days': 11}],'additional_quotation_cost': 0.0}}]}]
尝试创建新的 docker 网络时,出现以下错误:
$ uname -r
5.12.8-200.fc33.x86_64
$ docker -v
Docker version 20.10.7,build f0df350
尽管似乎除了默认值之外没有 docker 网络:
$ docker network create --subnet 172.18.128.0/17 si
Error response from daemon: cannot create network 87c3cae81d6e379b4fec55a671fc26e547debc218d16b9e762435b7aa6f9ca28 (br-87c3cae81d6e): conflicts with network 8247c1fe85afa51c174529086ad8bc58069e8aac336cc99239b2cce21311ecb9 (br-8247c1fe85af): networks have overlapping IPv4
似乎存在一些网桥。这些可能是后来被删除的 docker 网络的残余:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
93e55f691850 bridge bridge local
57062f01a833 host host local
3f81078d2755 none null local
所以我的想法是删除这些网桥,认为在此之后创建新的 docker 网络应该可以:
$ brctl show
bridge name bridge id STP enabled interfaces
br-0ccb5edb60fa 8000.02425e65824c no
br-0ebff3222c7d 8000.0242ad165003 no
br-13b92f8a402d 8000.0242fd54405d no
br-3fe8819f1dab 8000.0242df196682 no
br-62855eeb66b1 8000.024279b970d4 no
br-64f88c232b42 8000.024294a697d3 no
br-6cb52985982b 8000.0242fa683006 no
br-7b91629f9dc5 8000.02429075dacd no
br-8247c1fe85af 8000.0242da4e1ba9 no
br-9e6e08fae543 8000.0242a0c94c05 no
br-b04024820e6b 8000.024251673cfb no
br-bb03dc88def2 8000.0242d550a519 no
br-c3bfd0e7bfac 8000.02420fc70d06 no
br-f446efca8607 8000.02423c5f7dff no
br-fc4085566463 8000.0242c5a5a9ed no
docker0 8000.0242090fcff7 no
可惜,错误依旧:
$ sudo ip link del br-0ccb5edb60fa # do this for all bridges
$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242090fcff7 no
我认为重启 docker 服务可能会解决问题
$ docker network create --subnet 172.18.128.0/17 si
Error response from daemon: cannot create network 60b9a9c6f1b032cf54ac799e5b8f2a96b1d55a05492e5357ffb6b002f10a27de (br-60b9a9c6f1b0): conflicts with network fc4085566463d57a641dbb3f5bba4888dbdf3908868f30d4e0c46edf19c001e4 (br-fc4085566463): networks have overlapping IPv4
但是重启docker服务后,网桥又出现了!
$ sudo systemctl restart docker
我尝试过的其他事情,但没有帮助:
$ brctl show
bridge name bridge id STP enabled interfaces
br-0ccb5edb60fa 8000.0242ba61c513 no
br-0ebff3222c7d 8000.0242ae82887a no
br-13b92f8a402d 8000.02421fa70d86 no
br-3fe8819f1dab 8000.0242a7c0d3cd no
br-62855eeb66b1 8000.02423b35c43d no
br-64f88c232b42 8000.0242e3235138 no
br-6cb52985982b 8000.024264333192 no
br-7b91629f9dc5 8000.02420c574876 no
br-8247c1fe85af 8000.02423b3845ee no
br-9e6e08fae543 8000.024285a4da86 no
br-b04024820e6b 8000.02425a16a19f no
br-bb03dc88def2 8000.02422c2da231 no
br-c3bfd0e7bfac 8000.024250df5e93 no
br-f446efca8607 8000.024234091377 no
br-fc4085566463 8000.0242eda476ce no
docker0 8000.0242090fcff7 no
什么可能阻止我可靠地删除网桥?
解决方法
我明白了为什么 docker 不断地重新创建桥。它们似乎存储在 /var/lib/docker/network/files/local-kv.db
中,这是一个二进制文件 (BoltDB),这就解释了为什么我没有用 grep
捕获它。
删除文件并重新启动 docker 解决了我的问题。
以下命令(在 zsh
中执行,其他 shell 可能不同)删除所有网桥、上述文件并重新启动 docker 服务。
之后,我就可以毫无错误地创建 docker 网络了。
while read; do
if [ ! -z "$REPLY" ]; then
sudo ip link del $REPLY
fi
done <<<"$(brctl show | grep '^br-' | awk '{print $1}')"
sudo rm /var/lib/docker/network/files/local-kv.db
sudo systemctl restart docker
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。