Windows远程连接Docker服务

ops/2025/1/23 17:43:57/

问题背景

本地开发了一个SpringBoot项目,想通过Docker部署起来,我本地是Window11系统,由于某些原因不能虚拟化并且未安装Docker-Desktop,所以我在想有没有办法本地不需要虚拟化也不需要安装Docker-Desktop来实现支持Docker命令远程连接到我自己的服务器上。经过搜索以及大佬的指点发现了一个办法。那就是通过Docker客户端远程连接服务器的Docker服务端。

实现

Docker服务端允许远程访问

Docker客户端远程访问服务端
查看Docker服务端版本

docker version

在这里插入图片描述
获取到Docker服务端版本为24.0.9。

修改docker.service开放远程访问。

# 编辑
vim /etc/systemd/system/docker.service

找到该文件中的

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

注释或删除改行,替换为如下命令

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述
替换之后保存退出,然后重启Docker服务

systemctl daemon-reload && systemctl restart docker

在你本地通过浏览器访问http://{服务器IP}:2375/version,当看到页面显示一串JSON时表示已开放远程访问。

[root@registry ~]# curl http://10.0.11.70:2375/version
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"24.0.9","Details":{"ApiVersion":"1.43","Arch":"amd64","BuildTime":"2024-02-01T00:49:16.000000000+00:00","Experimental":"false","GitCommit":"fca702d","GoVersion":"go1.20.13","KernelVersion":"3.10.0-1160.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"v1.7.13","Details":{"GitCommit":"7c3aca7a610df76212171d200ca3811ff6096eb8"}},{"Name":"runc","Version":"1.1.12","Details":{"GitCommit":"v1.1.12-0-g51d5e94"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"24.0.9","ApiVersion":"1.43","MinAPIVersion":"1.12","GitCommit":"fca702d","GoVersion":"go1.20.13","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-1160.el7.x86_64","BuildTime":"2024-02-01T00:49:16.000000000+00:00"}
[root@registry ~]# 

安装客户端

在Windows访问 https://download.docker.com/win/static/stable/x86_64/ 下载跟服务端版本一致的客户端压缩包
在这里插入图片描述
下载之后解压到指定文件夹,比如我放在D:\environment\docker-24.0.9下。在D:\environment\docker-24.0.9下会多出来一个名字为docker的文件夹,里面有如下图docker.exe、dockerd.exe、docker-proxy.exe三个文件
在这里插入图片描述

配置环境变量

Windows的系统环境变量中添加一个环境变量DOCKER_HOST,值配置为tcp://{IP}:2375,这个IP替换为Docker所在服务器的IP (例如我的tcp://10.0.11.70:2375)

然后再添加一个环境变量DOCKER_CLIENT,值配置为DOCKER_CLIENT,也就是刚刚解压的目录,并且在Path中添加该变量(%DOCKER_CLIENT%),配置该环境变量后可以在任何位置访问docker.exe可执行文件。
在这里插入图片描述


在这里插入图片描述

验证

打开CMD,在任意文件夹下执行docker ps查看是否显示服务器上的容器

Docker-Compose安装

查看服务端docker-compose版本

docker-compose version# Docker Compose version v2.29.2

下载相同版本的docker-compose
访问 https://github.com/docker/compose/releases 下载对应版本的docker-compose
在这里插入图片描述
下载后存放到docker客户端所在的目录D:\environment\docker-24.0.9下,然后重命名为docker-compose
在这里插入图片描述

验证

运行命令查看是否生效。

docker-compose ps

注意:运行docker-compose命令所在的文件夹的名称需要注意,不能随便乱取名。我的情况是需要跟服务器上的当前文件夹名称保持一致


http://www.ppmy.cn/ops/152523.html

相关文章

【全栈】SprintBoot+vue3迷你商城(6)

【全栈】SprintBootvue3迷你商城(6) 在上几期中我们基本完成了与用户相关的接口,以及制定拦截器限定了用户相关接口使用的权限 本期我们来实现与商品相关的接口 商品的接口先就实现两个,一个是之前提到的商家添加商品&#xff…

寒武纪使用cnnl库函数实现卷积算子

完整代码参考添加链接描述 寒武纪cnnl实现卷积的库函数说明参考添加链接描述 cnnl调用卷积的函数这里我们使用的是cnnlConvolutionForward,这个函数的使用只是最后的计算过程,但是在计算之前,还有许多准备工作。下图展示了一个完整的cnnl调…

GDB相比IDE有什么优点

GDB(GNU Debugger)相比于集成开发环境(IDE)具有一些独特的优点,主要体现在其灵活性、可定制性和低级控制能力。具体来说,GDB有以下几个优点: 1. 轻量级且无依赖 GDB是一个命令行工具,不依赖于任何复杂的图形界面或大型库,这使得它非常适合在资源受限的环境中使用,比…

HarmonyOS NEXT:华为分享-碰一碰开发分享

随着科技的不断进步,智能手机和智能设备之间的互联互通变得越来越重要。华为作为科技行业的领军企业,一直致力于为用户提供更加便捷、高效的使用体验。HarmonyOS NEXT系统的推出,特别是其中的“碰一碰”功能,为用户带来了前所未有…

在软件开发中纳入数据安全措施的最佳实践

在当今数字化时代,网络安全已成为各类规模企业的首要任务。随着网络威胁发生的频率日益增加且复杂程度不断提高,企业定期更新安全协议以保护敏感数据并防止未经授权的访问至关重要。 通过定期更新安全协议确保网络安全 我们深知网络安全的重要性&#…

机器学习实战第一天:LSTM(长短时记忆网络)

第一天是讲述LSTM大概的理论知识,知识是源自于B站李沐老师的讲解。下面我简单的总结一下LSTM的核心,因为文字不擅长表达过于细节的东西,如果有想深入了解LSTM的全部可以去B站搜索相关的视频讲解。 一、 LSTM具有很强的前后关联性&#xff0c…

Vue3初学之商品的增,删,改功能

用一个商品的后台管理进行增&#xff0c;删&#xff0c;改的实现。 案例进行学习&#xff1a; <template><div><el-button type"primary" click"handleNew">新增商品</el-button><el-table :data"goodsList" style…

实现简单的TCP服务器

首先我们先选择一个端口号用于 TCP 或 UDP 网络通信。如果你运行一个服务或应用程序&#xff0c;监听端口就是通过该端口接收来自客户端的请求。 这里我们选择2048 先在ubuntu系统中输入netstat -anop | grep 2048&#xff0c;会显示以下信息 这代表此时2048端口号没有被占用…