《全网唯一》解决华为OpenEuler 22.03LTS重启后,docker丢失自定义网络,docker-compose报错: network not found

1.问题描述

如果你在华为OpenEuler 22.03LTS系统中

  • 使用yum或者dnf安装docker,docker network create 创建的网络,然后重启宿主机,会发现之前的网络全都不见了
  • 或者docker-compse创建一组容器,重启宿主机会发现docker-compose无法启动,报错找不到网络

如果只是想解决以上问题,不关心处理过程,请直接去看第三段

2.定位问题

整个处理过程我深感大局域网已死,查中文资料都得上科技去外网

翻遍baidu我也找不到解决办法,把docker-compose的报错贴出来,只有几个机翻外国网站的答案,比如让配置nat

翻遍官方gitee的issues,也只找到有人7个月前提出同样问题,然后被官方踢皮球。

无奈上科技去google搜索,顺利找到了欧拉官方文档关于这个问题的说明:《系统掉电影响》

整个说明很有意思,非常有中国一刀切的传统智慧,简单说就是:宿主机意外重启偶尔可能有问题,所以我们干脆每次重启都删除docker的数据,这样问题就可以稳定出现了(每次都丢失)

看了官方文档我内心都崩溃了,为了解决这个破系统里面docker-compose老是丢网络无法重启的问题,我五一都在加班,请问华为赔我三倍工资吗?

本以为定位到问题,可以按照官方文档开心解决了,没想到还有坑,官方说怎么关闭这个脑残设置呢,以下是原话:

用户若选择采用手动清理恢复环境的方式,可通过配置环境变量“DISABLE_CRASH_FILES_DELETE=true”屏蔽daemon掉电重启时db文件清理功能。

看了文档,我二话没说,去/etc/profile加了 export DISABLE_CRASH_FILES_DELETE=true,本以为这下可以开心过节了,没想到重启后屁用没有

崩溃啊!!!华为还我假期!!!

3.解决方案

最后反复尝试,发现是文档措辞不严谨,不是在整个系统环境变量里加,而是在/etc/sysconfig/docker里面加,如下:

# /etc/sysconfig/docker

# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--live-restore=false'
# 这里写上
DISABLE_CRASH_FILES_DELETE=true

4.终极建议

远离华为,一生幸福

你可能感兴趣的:(docker,网络,容器,欧拉系统)