我有一个带有 Nginx 反向代理的 OpenProject 容器。我为他们创建了一个名为 proxy 的桥接网络。我可以在服务器域中调用 OpenProject 网页,但不能在工作站域中调用。也许我说得不太准确,抱歉。 问题是 Docker 子网 IP 与工作站的 IP 冲突。它们之间有重叠。 因此,由于获得不同的 IP,我在 /etc/docker 中创建了 daemon.json 文件。 (我在互联网上找到了这个建议。) 这是它的内容:
{
"default-address-pools": [
{ "base": "10.0.2.0/18", "size": 24 }
]
}
我停止了容器并删除了所有 Docker 网络,然后重新启动了 Docker,并再次创建了 proxy 网络,但是当我再次启动 OpenProject 容器时,它停止了并显示以下消息:
来自守护程序的错误响应:未找到网络 7371a6c729f3143ad73b81ac505a726bacd28147ba38b4e1ad084eed7eafa785
所以,现在我不知道如何处理这个错误。
更新
OpenProject docker-compose.yml 文件引用这些网络:
networks:
frontend:
backend:
proxy:
external: true
在我尝试启动它后,这些网络正在运行:
NETWORK ID NAME DRIVER SCOPE
c2712a814ce3 bridge bridge local
d1abf033bef1 compose_backend bridge local
e370558ece80 compose_default bridge local
916261afc4da compose_frontend bridge local
24bb40d18154 host host local
75da711bd148 none null local
36832db7fcb2 proxy bridge local
发生的情况是,如果您删除并重新创建所有网络,则已停止的容器现在会尝试将自身附加到不再存在的网络,即使它具有相同的名称。
您可以在
docker network ls
中看到代理网络的id:36832db7fcb2
。现在使用 docker inspect [id of the container]
检查已停止容器的配置。如果网络 -> 代理下列出的 NetworkID
与您当前代理网络的 ID 不同,就是这种情况。
您可以首先将容器与这个不存在的网络分离来解决此问题:
docker network disconnect proxy [container-id]
然后用
重新启动容器docker start [container-id]
现在,如果它启动了,您可以使用以下命令将其重新连接到网络:
docker network connect proxy [container-id]