我可以直接连接到docker swarm网络吗?

时间:2017-02-21 19:30:10

标签: docker docker-swarm

我想在Docker Service / Swarm网络中使用shell。具体来说,我希望能够连接到网络内的数据库。

从经理节点,我尝试了:

# docker network ls
NETWORK ID          NAME          DRIVER              SCOPE
481c20b4039a        bridge        bridge              local
2fhe9rtim9mz        my-network    overlay             swarm

然后

docker run -it --network my-network alpine sh

但我收到错误:

  

docker:来自守护程序的错误响应:swarm-scoped网络(event-data-core-prod)与docker createdocker run不兼容。此网络只能由泊坞窗服务使用。

是否有可能以某种方式启动可以连接到网络服务的交互式会话?

1 个答案:

答案 0 :(得分:2)

由于Docker Engine v1.13(已经由johnharris85提及)is非服务容器可以使用--attachable附加到群组模式覆盖网络创建网络时的命令行参数:

docker network create --driver overlay --attachable my-attachable-overlay-network

关于你的后续问题:

  

有没有办法为现存的网络改变这个?

是和否,就像我在another question中所述,您可以使用docker service update功能:

更新已在运行的泊坞窗服务:

  1. 创建一个可附加的覆盖网络:

    docker network create --driver overlay --attachable my-attachable-overlay-network
    
  2. 删除已禁用的网络堆栈"可连接"覆盖网络(在此示例中称为:my-non-attachable-overlay-network):

    docker service update --network-rm my-non-attachable-overlay-network myservice
    
  3. 添加一个已启用"可连接的网络堆栈"覆盖网络:

    docker service update --network-add my-attachable-overlay-network myservice