os升级后Docker构建失败



我一直在本地Ubuntu服务器22.4上出色地运行和更新Redmine/Nginx。我最近升级了操作系统,然后尝试升级到最新版本的redmine。

我的Dockerfile基本上得到了最新的Redmine容器,然后在几个扩展中进行复制。

FROM redmine:latest
COPY --chown=redmine:redmine ./auth_source_ldap.rb ./app/models/
ADD --chown=redmine:redmine ./redmine_dmsf ./plugins/redmine_dmsf
ADD --chown=redmine:redmine ./redmine_more_previews ./plugins/redmine_more_previews
RUN apt-get install -y xapian-omega ruby-xapian libxapian-dev xpdf poppler-utils antiword unzip catdoc libwpd-tools 
libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl nano pandoc

在docker构建结束时,我在创建自定义映像时遇到了一个失败:

Step 6/6 : RUN apt-get install -y xapian-omega ruby-xapian libxapian-dev xpdf poppler-utils antiword unzip catdoc libwpd-tools libwps-tools gzip unrtf catdvidjview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl nano pandoc
---> Running in b1464eeddd71
failed to create endpoint laughing_ritchie on network bridge: adding interface veth9feff58 to bridge docker0 failed: could not find bridge docker0: route ip+net: no such network interface

未创建自定义图像。

做docker镜像ls返回

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
<none>       <none>    1b8dcc50a795   29 minutes ago   616MB
redmine      latest    bf1de550a9ed   2 weeks ago      595MB

根据一篇旧文章中的建议,我尝试通过运行以下程序来隔离端点的创建:

brctl addif veth9feff58 docker0

只返回:

interface docker0 does not exist!

我目前的假设是,在升级期间;docker0";被覆盖了,但我不知道是哪一个。

我试过卸载和重新安装Docker,但结果是一样的。

此外,旧容器将不再启动。

=============编辑/附加信息=============

在重新安装helloworld后,它成功运行了一次,但当我再次尝试构建时,它也出现了同样的问题。我的docker服务现在看起来是这样的:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service
[Service]
Type=notify
ExecStartPre=-/usr/bin/ip link set dev docker0 down
ExecStartPre=-/usr/sbin/brctl delbr docker0
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
docker containers
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target

你能告诉我们这个文件是什么样子的吗:

/usr/lib/systemd/system/docker.service

通常情况下,它看起来是这样的:

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
[Service]
Type=notify
EnvironmentFile=-/etc/default/docker
ExecStartPre=-/usr/bin/ip link set dev docker0 down
ExecStartPre=-/usr/sbin/brctl delbr docker0
Environment=GOTRACEBACK=crash
ExecStart=/usr/bin/docker daemon 
$OPTIONS 
$DOCKER_STORAGE_OPTIONS 
$DOCKER_NETWORK_OPTIONS 
$INSECURE_REGISTRY
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
MountFlags=slave
TimeoutStartSec=1min
[Install]
WantedBy=multi-user.target

请验证这2行:

ExecStartPre=-/usr/bin/ip link set dev docker0 down
ExecStartPre=-/usr/sbin/brctl delbr docker0

如果没有,请试着改变你身边的不同线条;

systemctl daemon-reload && systemctl restart docker

希望这能帮助你,并希望你通知我是否可以去

虽然我不确定根本原因,但似乎是某些更新的包导致了冲突。(回想一下,我刚刚升级了Ubuntu 22.04 LTS(

我找到了重新安装大部分软件包的步骤,问题就解决了。我不是大师,其中一些步骤可能并不相关。如果我有时间的话,在各种步骤后重新启动和测试会很好。。。

如果它对其他人有帮助,这些是我用来清理系统包的步骤:

rm /var/lib/apt/lists/lock
rm /var/lib/dpkg/lock
rm /var/lib/dpkg/lock-front-end
rm /var/cache/apt/archives/lock
dpkg --configure -a
apt clean
apt update --fix-missing
apt install -f
dpkg --configure -a
apt upgrade
apt dist-upgrade

然后重新启动

之后,一切都恢复正常。

最新更新