我正在尝试在多主机网络中创建容器,但在创建时收到此错误:
Error response from daemon: network myapp not found
这里myapp是我创建的覆盖网络的名称。我使用的命令是:
myapp
sudo docker run --rm -it --name=test_cont --net=myapp ubuntu bash
qyuhtwio1#
我在执行docker system prune后开始出现此错误。docker network ls显示我的网络:
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守护进程,网络真的被删除了,然后我可以重新创建它,一切又开始工作了。
jogvjijk2#
如果您使用docker-compose,与prune相比,一个破坏性较小的选项是使用以下命令强制重新创建容器:
docker-compose
docker-compose up --force-recreate
xyhw6mcr3#
在我情况下,我必须:
docker system prune systemctl restart docker.service
让它再次运转。
5w9g7ksd4#
Docker网络的作用域为不同的访问。你的myapp网络是作用域为群的覆盖网络。这意味着您只能在群级别使用它-docker service create --network myapp将工作正常,因为服务也在群级别。您可以在群上使用docker run启动容器,但它只能在运行命令的节点上本地运行,因此它无法看到群网络。
docker service create --network myapp
docker run
8nuwlpux5#
删除容器(不是图像),然后再次运行:
docker compose up
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.
m1m5dgzv7#
我不小心删除了我的容器的网桥,在我的情况下,我只需要做
docker compose -f "docker-compose.yaml" down
然后再重建一次,成功了
docker compose -f "docker-compose.yaml" up -d --build
PS:不幸的是,当你关闭容器的数据库可以擦除它,如果没有安装在一个卷中,所以要小心^^
yyyllmsg8#
假设您将myapp_net网络连接到app_container,则:
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邮政、公共、货运
9条答案
按热度按时间qyuhtwio1#
我在执行
docker system prune
后开始出现此错误。docker network ls
显示我的网络:但是部署堆栈会出现如下错误:
然后我问自己最重要的调试问题是:你试过关机再开机吗?
我重新启动了我的docker守护进程,网络真的被删除了,然后我可以重新创建它,一切又开始工作了。
jogvjijk2#
如果您使用
docker-compose
,与prune相比,一个破坏性较小的选项是使用以下命令强制重新创建容器:xyhw6mcr3#
在我情况下,我必须:
让它再次运转。
5w9g7ksd4#
Docker网络的作用域为不同的访问。你的
myapp
网络是作用域为群的覆盖网络。这意味着您只能在群级别使用它-
docker service create --network myapp
将工作正常,因为服务也在群级别。您可以在群上使用
docker run
启动容器,但它只能在运行命令的节点上本地运行,因此它无法看到群网络。8nuwlpux5#
删除容器(不是图像),然后再次运行:
zqdjd7g96#
在我的例子中,即使是在群模式下,它也没有删除网络,但如果我再次创建它,它会抛出一个错误,因为已经有一个同名的网络。我必须重新启动Docker服务,步骤如下:
m1m5dgzv7#
我不小心删除了我的容器的网桥,在我的情况下,我只需要做
然后再重建一次,成功了
PS:不幸的是,当你关闭容器的数据库可以擦除它,如果没有安装在一个卷中,所以要小心^^
yyyllmsg8#
假设您将myapp_net网络连接到app_container,则:
它可以解决你的问题。
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邮政、公共、货运