我正在尝试运行一次性命令来初始化一个新的docker swarm中的数据库模式,该数据库模式部署了1.13对docker-compose文件的新支持.
该群有以下网络:
$ 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网络中找不到任何关于可连接的具体信息,并尝试attachable
在网络定义中添加属性而没有成功.
使用作曲家
自编写器v3.2以来,可以使用关键字attachable
like 通过composer文件配置可附加属性:
networks: mynet1: driver: overlay attachable: true
运用 docker network create
从Docker Engine API v1.25开始,可以使用以下--attachable
参数创建网络并使其可连接:
docker network create --driver overlay --attachable my-overlay-network
要更新已在运行的docker服务:
创建一个可附加的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
使用禁用的"可附加"覆盖网络删除网络堆栈(在此示例中称为:)my-non-attachable-overlay-network
:
docker service update --network-rm my-non-attachable-overlay-network myservice
使用启用的"可附加"覆盖网络添加网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice