当前位置:  开发笔记 > 运维 > 正文

当对码头群网络运行一次性命令时,"网络无法手动连接"

如何解决《当对码头群网络运行一次性命令时,"网络无法手动连接"》经验,为你挑选了1个好方法。

我正在尝试运行一次性命令来初始化一个新的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在网络定义中添加属性而没有成功.



1> Murmel..:

使用作曲家

自编写器v3.2以来,可以使用关键字attachablelike 通过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
    


请注意,如果您已经部署了堆栈,那么仅更新网络配置是不够的.您将需要删除堆栈并再次部署它,因为不会跟踪网络以进行更改,并且仅在初始部署时创建.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有