2017-02-21 213 views
0

我想要一個Docker服務/ 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: Error response from daemon: swarm-scoped network (event-data-core-prod) is not compatible with docker create or docker run . This network can only be used by a docker service.

是否有可能以某種方式啓動一個交互式會話可以連接到網絡服務?

+0

如果您使用1.13那裏建立一個網絡,將讓廣告時是一個'--attachable'標誌-hoc(非服務)容器加入網絡。 – johnharris85

+0

有沒有辦法改變這個現存的網絡? Docs似乎沒有暗示它。我不想停止整個網絡來編輯這個配置值。 https://docs.docker.com/engine/reference/commandline/network/ – Joe

回答

2

由於泊塢引擎v1.13(像已經由johnharris85提到的)它is可能用於非服務容器附着到創建網絡時使用--attachable命令行參數羣模式覆蓋網絡:

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

關於你的後續問題:

Is there a way to change this for an extant network?

是,也不是,就像我已經描述d在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