docker 守护程序的错误响应:找不到网络myapp

zzoitvuj  于 2023-03-07  发布在  Docker
关注(0)|答案(9)|浏览(146)

我正在尝试在多主机网络中创建容器,但在创建时收到此错误:

Error response from daemon: network myapp not found

这里myapp是我创建的覆盖网络的名称。我使用的命令是:

sudo docker run --rm -it --name=test_cont --net=myapp ubuntu bash
qyuhtwio

qyuhtwio1#

我在执行docker system prune后开始出现此错误。
docker network ls显示我的网络:

NETWORK ID          NAME                DRIVER              SCOPE
pgl0gb0mbwql        myapp               overlay             swarm

但是部署堆栈会出现如下错误:

failed to create service myapp_database: Error response from daemon: network myapp not found

然后我问自己最重要的调试问题是:你试过关机再开机吗?
我重新启动了我的docker守护进程,网络真的被删除了,然后我可以重新创建它,一切又开始工作了。

jogvjijk

jogvjijk2#

如果您使用docker-compose,与prune相比,一个破坏性较小的选项是使用以下命令强制重新创建容器:

docker-compose up --force-recreate
xyhw6mcr

xyhw6mcr3#

在我情况下,我必须:

docker system prune
systemctl restart docker.service

让它再次运转。

5w9g7ksd

5w9g7ksd4#

Docker网络的作用域为不同的访问。你的myapp网络是作用域为群的覆盖网络。
这意味着您只能在群级别使用它-docker service create --network myapp将工作正常,因为服务也在群级别。
您可以在群上使用docker run启动容器,但它只能在运行命令的节点上本地运行,因此它无法看到群网络。

8nuwlpux

8nuwlpux5#

删除容器(不是图像),然后再次运行:

docker compose up
zqdjd7g9

zqdjd7g96#

在我的例子中,即使是在群模式下,它也没有删除网络,但如果我再次创建它,它会抛出一个错误,因为已经有一个同名的网络。我必须重新启动Docker服务,步骤如下:

docker network rm myapp                   #launch the error that the network did not exist
sudo systemctl restart docker.service     #restart the docker service
docker network ls                         # not shows network.
m1m5dgzv

m1m5dgzv7#

我不小心删除了我的容器的网桥,在我的情况下,我只需要做

docker compose -f "docker-compose.yaml" down

然后再重建一次,成功了

docker compose -f "docker-compose.yaml" up -d --build

PS:不幸的是,当你关闭容器的数据库可以擦除它,如果没有安装在一个卷中,所以要小心^^

yyyllmsg

yyyllmsg8#

假设您将myapp_net网络连接到app_container,则:

  1. Docker网络断开连接-f myapp_net app_container #强制断开连接
  2. docker网络create myapp_net #再次创建docker网络
  3. Docker网络连接myapp_net app_container #再次连接Docker网络
    它可以解决你的问题。
wz3gfoph

wz3gfoph9#

在我的情况下,错误是因为命名问题,重新检查您的网络名称在docker和给相同的命令。
我遵循的步骤:(适用于Windows)
1.停止所有码头服务
码头工排版
1.关闭Docker GUI并重启Docker
到任务栏并点击显示隐藏图标--〉右键点击它--〉Docker重新启动。
1.打开终端并转到docker文件所在的目录(. yml)
1.使用cmd运行所有Docker服务:
Docker 组成
1.打开新终端并运行:检查网络名称
码头网络公司
1.复制名称并将其粘贴到命令中的网络名称部分。
docker run--tty--network〈此处为您的网络名称〉confluentinc/cp-kafkacat kafkacat-bKafka:- C-s密钥= s-s值= avro-r http://schema-reg:- t邮政、公共、货运

相关问题