Joe*_*Joe 2 docker docker-swarm
我想要一个 Docker 服务/Swarm 网络内的 shell。具体来说,我希望能够连接到网络内部的数据库。
从管理器节点,我尝试了:
# docker network ls
NETWORK ID NAME DRIVER SCOPE
481c20b4039a bridge bridge local
2fhe9rtim9mz my-network overlay swarm
Run Code Online (Sandbox Code Playgroud)
然后
docker run -it --network my-network alpine sh
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
docker:来自守护程序的错误响应:群范围网络(事件数据核心产品)与
docker create
或不兼容docker run
。该网络只能由 docker 服务使用。
是否可以以某种方式启动可以连接到网络服务的交互式会话?
从 Docker Engine v1.13开始(如johnharris85已经提到的 ),非服务容器可以在--attachable
创建网络时使用命令行参数附加到集群模式覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
Run Code Online (Sandbox Code Playgroud)
关于您的后续问题:
有没有办法为现有网络更改此设置?
是的,也不是,就像我在另一个问题中已经描述的那样,您可以使用该docker service update
功能:
要更新已运行的 docker 服务:
创建可连接的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
Run Code Online (Sandbox Code Playgroud)删除禁用“可附加”覆盖网络的网络堆栈(在本例中称为my-non-attachable-overlay-network
:):
docker service update --network-rm my-non-attachable-overlay-network myservice
Run Code Online (Sandbox Code Playgroud)添加具有启用的“可连接”覆盖网络的网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
2972 次 |
最近记录: |