Ole*_*yev 6 docker docker-swarm docker-swarm-mode
我需要将一些文件从工作节点上运行的容器复制到管理器主机。这个操作我需要留在经理那里做。
换句话说,如何从管理器访问工作节点上运行的容器?
有人可以帮忙吗?
这是不可能的(使用纯Docker操作)。当您在您的系统中创建一个swarm正在运行的服务时,将在该系统上启动worker node一个简单的服务。它必须用于复制输入/输出文件(可以从(例如: cmd)访问它,但它本身不能)!Docker containerDockernodecontainerservicemanager node(s)logscontainer
您可以简单地验证一下:
如果您运行以下命令来container根据名称获取 ID service,您可以获取container实际的 ID node(这意味着您将能够container从实际的 ( manager)连接到node)
docker ps -q -f name=<service_name>
Run Code Online (Sandbox Code Playgroud)
如果其中一个<service_name>副本在实际服务器上运行,那么您将获得一个Docker Container ID并且可以连接它。例如。:
>>> docker ps -q -f name=test_swarm_service
b1ae9e0991ef
Run Code Online (Sandbox Code Playgroud)
如果没有replica在实际节点上运行node,您将不会从该命令中得到任何内容,这意味着您将无法从实际节点连接到它。
如果您确定其中之一replicas在实际运行,您可以从(通过名称)node复制文件,如下所示:containerSwarm service
docker ps -q -f name=<service_name>
Run Code Online (Sandbox Code Playgroud)
当然,您可以通过manager node(s)一些黑客手段来完成此操作(不是纯粹的Docker)。例如。:
Docker通过SSH(from manager nodeon )运行命令并通过scp或rsyncworker node将文件从worker nodeto复制。manager node| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |