曾经需要完成一个SSH到Windows docker container里的需求(这个需求听上去就很神奇有木有),就对Windows docker研究了一段时间,当时查阅了很多资料,感觉没有看到很系统总结的文章,所以决定在这里自己总结下。先后尝试了两种远程连接到Windows docker的方法,一种是通过dockertls远程连接到你要连接的docker host(docker daemon)上;另一种是通过SSH远程连接到特定的docker container中。本文我们讲讲dockertsl,下一篇文章我们将SSH的方式。

通过dockertls远程连接Windows docker host

这个方式比较简单直接,如果你有remote Windows docker的需求,推荐用这个方式,毕竟这也是Azure的官方方法:
准备两台都装有docker的机器,一台是你需要连接的host,一台我们就算普通machine

  1. 通过 dockertls 生成证书,这里会需要用到你的host的IP地址,最好先整一个静态IP,不然IP一换,你就又要重新生成一个新的证书了。
  • 在container上找一个你喜欢的folder,执行以下代码:
mkdir server
mkdir client\.docker
docker run --rm `
  -e SERVER_NAME=$(hostname) `
  -e IP_ADDRESSES=127.0.0.1,<your IP address> `
  -v "$(pwd)\server:c:\programdata\docker" `
  -v "$(pwd)\client\.docker:c:\users\containeradministrator\.docker" stefanscherer/dockertls-windows
dir server\certs.d
dir server\config
dir client\.docker

然后你就会在相应的目录里看到生成的证书啦

  • 把生成的证书copy到你要用来远程登录的machine上,放在你的user目录下,比如说C:\user\yiran\ .docker
  1. 修改machine docker的daemon.json文件,加上:
"tlsverify": false,
  1. 保证2375和2376这两个TLS的端口允许访问
New-NetFirewallRule -DisplayName 'Docker SSL Inbound' -Profile @('Domain', 'Public', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2376
  1. 重新启动docker service,用管理员权限在powershell输入Restart-Service Docker

然后就可以来测试看看了,在你的machine上面执行:

docker -H tcp://wsdockerhost.southcentralus.cloudapp.azure.com:2376 --tlsverify=0 version

不出意外你就可以在上面敲打docker命令来操作host机器上的docker container了。

https://docs.microsoft.com/en-us/virtualization/windowscontainers/management/manage_remotehost
https://hub.docker.com/r/stefanscherer/dockertls-windows/

前言曾经需要完成一个SSH到Windows docker container里的需求(这个需求听上去就很神奇有木有),就对Windows docker研究了一段时间,当时查阅了很多资料,感觉没有看到很系统总结的文章,所以决定在这里自己总结下。先后尝试了两种远程连接到Windows docker的方法,一种是通过dockertls远程连接到你要连接的docker host(docker daemo...
Docker 开启SSL证书加密远程链接1. 使用openssl 制作证书密钥1.1. 在服务器中新建目录/etc/docker,并切换到该目录下1.2. 创建根证书RSA私钥:1.3. 创建CA证书1.4. 创建服务端私钥1.5. 创建服务端签名请求证书文件1.6. 创建签名生效的服务端证书文件1.7. 创建客户端私钥1.8. 创建客户端签名请求证书文件1.9. 创建extfile.cnf的配置文件1.10. 创建签名生效的客户端证书文件1.11. 删除多余文件2. 配置Docker支持TSL链接2.1. 编辑docker.service配置文件2.2. 刷新配置,重启Docker3. 验证
Windows开启Docker远程访问 Docker是用于创建容器化应用程序的完整开发平台。 Docker Desktop是在Windows上开始使用Docker的最佳方法。WindowsDocker桌面部分包含有关Docker桌面社区稳定版的信息。 下载&安装 官网下载地址 Docker Desktop for Windows 开启docker的远程连接 By default, i...
Docker是什么? Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。 总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 更多Docker详情请参考:Docker 入门教程 Windows下的Docker安装 1.DockerWindows提供了一款软件
docker desktop(Windows)使用docker login远程登录Harbor私有镜像仓库解决自动访问https报错问题0、环境说明1、遇到的问题2、问题解决方法-网上查阅的3、正确的解决方法4、重新执行docker login,并push本地镜像至远程harbor仓库 0、环境说明 harbor私有镜像仓库部署在华为云ECS上 本机电脑环境是windows10 + docker desktop + IDEA(spring boot + spring cloud项目) 需要把Java项目
现如今微服务越来越普遍,各种不同技术的学习需要不同的环境,学习docker容器技术也就越发重要。依赖于已存在并运行的 Linux 内核环境,但是个人的设备基本都是基于window系统的,本文就是参考官网,安装window版docker,并结合 WLS来进一步模拟linux中操作docker。 环境: window 10 enterprise版 Step 1 -- 启用Hyper-V 方法 1 : 从设置选项中启动 应用和功能( Apps and Futrues) 打开控制面板 --> 左击 ‘
sudo docker run -d -p 2375:2375 --restart=always --name docker_remote docker/dind 这将启动一个 Docker 守护进程,并将其绑定到本地主机的 2375 端口。 3. 然后,在远程主机上启动 Docker 守护进程。 4. 接下来,在本地主机上运行以下命令,以连接到远程 Docker 守护进程: export DOCKER_HOST=tcp://remote_host_ip:2375 其中,remote_host_ip 是远程主机的 IP 地址。 5. 现在,您就可以使用本地主机上的 Docker 命令来管理远程主机上的 Docker 容器了。 注意:要使用远程 Docker,您需要具有远程主机上的 root 权限。 希望这对您有帮助!