"network not manually attachable" when 运行 针对 docker 群网络的一次性命令
"network not manually attachable" when running one-off command against docker swarm network
我正在尝试 运行 一个一次性命令来初始化一个新的 docker swarm 中的数据库模式,该 swarm 部署了 1.13 对 docker- 的新支持撰写文件。
群有以下网络:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
...
b7dptlu8zyqa vme_internal overlay swarm
...
在 docker-compose.yml
文件中定义为:
networks:
internal:
我运行的命令是
docker run --rm --network vme_internal app:0.1 db upgrade
额外的 vme_
前缀来自我在部署时给堆栈的名称。现在当我 运行 上述命令时,我得到:
docker: Error response from daemon: Could not attach to network vme_internal:
rpc error: code = 7 desc = network vme_internal not manually attachable.
如何使网络可连接?
我在 Docker networking 中找不到任何关于可附加的具体信息,并尝试将属性 attachable
添加到网络定义但没有成功。
默认情况下,使用新的 swarm 模式创建的覆盖网络不能用于非 运行 来自 swarm 的容器。 1.13 版允许您切换此设置,因此请确保您已升级。您必须使用可附加标志创建网络。我也无法让它在 swarm worker 上工作,需要将节点提升为 swarm manager。
使用作曲家
因为作曲家 v3.2 it is possible to configure the attachable property through the composer file using the keyword attachable
喜欢:
networks:
mynet1:
driver: overlay
attachable: true
使用docker network create
自 Docker 引擎 API v1.25 以来,可以使用 --attachable
参数创建网络并使其可连接,例如:
docker network create --driver overlay --attachable my-overlay-network
要更新已经 运行 docker 的服务:
创建可连接的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
删除禁用了 "attachable" 覆盖网络的网络堆栈(在本例中称为:my-non-attachable-overlay-network
):
docker service update --network-rm my-non-attachable-overlay-network myservice
添加启用了 "attachable" 覆盖网络的网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice
我正在尝试 运行 一个一次性命令来初始化一个新的 docker swarm 中的数据库模式,该 swarm 部署了 1.13 对 docker- 的新支持撰写文件。
群有以下网络:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
...
b7dptlu8zyqa vme_internal overlay swarm
...
在 docker-compose.yml
文件中定义为:
networks:
internal:
我运行的命令是
docker run --rm --network vme_internal app:0.1 db upgrade
额外的 vme_
前缀来自我在部署时给堆栈的名称。现在当我 运行 上述命令时,我得到:
docker: Error response from daemon: Could not attach to network vme_internal:
rpc error: code = 7 desc = network vme_internal not manually attachable.
如何使网络可连接?
我在 Docker networking 中找不到任何关于可附加的具体信息,并尝试将属性 attachable
添加到网络定义但没有成功。
默认情况下,使用新的 swarm 模式创建的覆盖网络不能用于非 运行 来自 swarm 的容器。 1.13 版允许您切换此设置,因此请确保您已升级。您必须使用可附加标志创建网络。我也无法让它在 swarm worker 上工作,需要将节点提升为 swarm manager。
使用作曲家
因为作曲家 v3.2 it is possible to configure the attachable property through the composer file using the keyword attachable
喜欢:
networks:
mynet1:
driver: overlay
attachable: true
使用docker network create
自 Docker 引擎 API v1.25 以来,可以使用 --attachable
参数创建网络并使其可连接,例如:
docker network create --driver overlay --attachable my-overlay-network
要更新已经 运行 docker 的服务:
创建可连接的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
删除禁用了 "attachable" 覆盖网络的网络堆栈(在本例中称为:
my-non-attachable-overlay-network
):docker service update --network-rm my-non-attachable-overlay-network myservice
添加启用了 "attachable" 覆盖网络的网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice