【问题标题】:Access to remote docker client/swarm/k8s clusters访问远程 docker 客户端/swarm/k8s 集群
【发布时间】:2022-07-28 22:28:31
【问题描述】:

DevOps、IT 专家...

请告诉我,如何从装有 Windows 操作系统的本地计算机访问远程服务器 docker(Docker Swarm 或 K8S)。

具有管理器 PC 名称 mss-swarm.test.local (172.12.20.61) 的远程 Docker Swarm 集群。 可以使用带有 Docker 桌面的本地 Docker 客户端 (v20.10.16)。 在 remote 机器 (mss-swarm.test.local) 上的 Docker Desktop 中,启用选项 ""Expose daemon on tcp://localhost:2375 without TLS""

现在在 本地 PC(Docker 客户端)上运行:

docker -H tcp://mss-swarm.test.local:2375 version 

连接时出错:Get "http://mss-swarm.test.local:2375/v1.24/version": dial tcp 172.12.20.61:2375: connectex: No connection could be made because the target machine active拒绝了。 客户: 云集成:v1.0.25 版本:20.10.16 API版本:1.41 围棋版本:go1.17.10 Git 提交:aa7e414 建成:2022 年 5 月 12 日星期四 09:17:07 操作系统/架构:windows/amd64 上下文:默认 实验性:真实*

或者----

*docker -H tcp://172.12.20.61:2375 version

连接时出错:获取“http://172.12.20.61:2375/v1.24/version”: 拨打 tcp 172.12.20.61:2375:connectex:无法建立连接 因为目标机器主动拒绝了。客户:云 集成:v1.0.25 版本:20.10.16 API 版本:
1.41 Go 版本:go1.17.10 Git 提交:aa7e414 构建:2022 年 5 月 12 日星期四 09:17:07 操作系统/Arch:windows/amd64 上下文:
默认实验性:true*

添加了变量 env:DOCKER_HOST=tcp://172.12.20.61:2375 没有 解决问题。

通过 docker context create 添加 ...也不起作用。

添加到远程的 daemon.json (C:\ProgramData\Docker\config) 码头工人群

“主机”:[ "npipe:////./pipe/docker_engine_windows" , "tcp://0.0.0.0:2375" ]

也不行。我做错了什么?

我的目标是从本地 docker CLI 访问远程服务器以管理集群、容器等。提前谢谢你。

【问题讨论】:

  • 如果您不是 100% 确定可以安全地设置远程 Docker 套接字访问,请不要尝试启用它。允许对 Docker 套接字进行未加密的远程访问是让您的主机受到攻击的一种非常简单的方法;谷歌“Docker cryptojacking”的一些例子。

标签: docker docker-compose swarm


【解决方案1】:

在我的情况下,存在安全关闭端口的问题。打开端口后,设置完成,一切可用。

【讨论】: