我可以直接连接到 docker 群网络吗?
Can I connect directly to a docker swarm network?
我想要 shell 在 Docker 服务/Swarm 网络中。具体来说,我希望能够连接到网络内部的数据库。
从管理器节点,我尝试了:
# 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.
是否有可能以某种方式启动可以连接到网络服务的交互式会话?
因为 Docker 引擎 v1.13 (like already mentioned by ) it is 非服务容器可以在创建网络时使用 --attachable
命令行参数连接到群模式覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
关于你的后续问题:
Is there a way to change this for an extant network?
是也不是,正如我在 中所述,您可以使用 docker service update
功能:
要更新已经 运行 docker 的服务:
创建可连接的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
删除带有禁用 "attachable" 覆盖网络的网络堆栈(在此示例中称为:my-non-attachable-overlay-network
):
docker service update --network-rm my-non-attachable-overlay-network myservice
添加启用了 "attachable" 覆盖网络的网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice
我想要 shell 在 Docker 服务/Swarm 网络中。具体来说,我希望能够连接到网络内部的数据库。
从管理器节点,我尝试了:
# 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
ordocker run
. This network can only be used by a docker service.
是否有可能以某种方式启动可以连接到网络服务的交互式会话?
因为 Docker 引擎 v1.13 (like already mentioned by --attachable
命令行参数连接到群模式覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
关于你的后续问题:
Is there a way to change this for an extant network?
是也不是,正如我在 docker service update
功能:
要更新已经 运行 docker 的服务:
创建可连接的覆盖网络:
docker network create --driver overlay --attachable my-attachable-overlay-network
删除带有禁用 "attachable" 覆盖网络的网络堆栈(在此示例中称为:
my-non-attachable-overlay-network
):docker service update --network-rm my-non-attachable-overlay-network myservice
添加启用了 "attachable" 覆盖网络的网络堆栈:
docker service update --network-add my-attachable-overlay-network myservice