远程连接Docker服务
背景
本地开发了一个SpringBoot项目,想通过Docker部署起来,我本地是Window10系统,由于某些原因不能虚拟化并且未安装Docker-Desktop,所以我在想有没有办法本地不需要虚拟化也不需要安装Docker-Desktop来实现支持Docker命令远程连接到我自己的服务器上。经过搜索以及大佬的指点发现了一个办法。那就是通过Docker客户端远程连接服务器的Docker服务端。
实现
Docker客户端远程访问服务端
查看Docker服务端版本
docker version
获取到Docker服务端版本为24.0.7。
Docker服务端允许远程访问
修改docker.service开放远程访问。
# 编辑
vim /lib/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时表示已开放远程访问。
下载对应版本客户端
在Windows访问https://download.docker.com/win/static/stable/x86_64/下载跟服务端版本一致的客户端压缩包。
下载之后解压到指定文件夹,比如我放在D:\\tools
下。在D:\\tools
下会多出来一个名字为docker
的文件夹,里面有如下图docker.exe、dockerd.exe、docker-proxy.exe三个文件(docker-compose.exe不用管,后面会讲)。
配置环境变量
在Windows的系统环境变量中添加一个环境变量DOCKER_HOST
,值配置为tcp://{IP}:2375
,这个IP
替换为Docker所在服务器的IP(例如我的tcp://192.168.169.180:2375
)
然后再添加一个环境变量DockerClient
,值配置为D:\\tools\\docker
,也就是刚刚解压的目录,并且在Path中添加该变量(%DockerClient%
),配置该环境变量后可以在任何位置访问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:\\tools\\docker
下,就是在上面看到的docker-compose.exe
(文件名称是自己改的,下载下来就是上图的名称)。
验证
运行命令查看是否生效。
docker-compose ps
注意:运行docker-compose命令所在的文件夹的名称需要注意,不能随便乱取名。我的情况是需要跟服务器上的当前文件夹名称保持一致。我的服务器上docker-compose.yml放在/usr/looveh/tw-feedback下,所以在Windows下执行docker-compose命令时当前目录的名称需要为tw-feedback,否则查询不到容器。
远程连接Docker服务的更多相关文章
- ssh远程连接docker中的 linux container
ssh远程连接docker中的container 由于工作需要,要远程连接Container,本地机器是windows,以下为解决步骤: 1. 环境 本地:Windows ↓ Docker版本1. ...
- TLS加密远程连接Docker
<Docker远程连接设置>一文讲述了开启Docker远程连接的方法,但那种方法不安全,因为任何客户端都可以通过Docker服务的IP地址连接上去,今天我们就来学习Docker官方推荐的安 ...
- ssh远程连接docker中linux(ubuntu/centos)
ssh远程连接docker中linux(ubuntu/centos) https://www.jianshu.com/p/9e4d50ddc57e centos docker pull centos: ...
- Navicat 远程连接Docker容器中的mysql 报错:1251 - Client does not support authentication protocol 解决办法。
出现这个问题 首先进入 1.docker exec -it mysql02 bash //mysql02是mysql容器的别名 2.mysql -uroot -p 3.输入密码 4.进入my ...
- 远程连接linux服务上的mysql
如果有童鞋linux上还未安装mysql数据库可以参考我上一篇博客 (1)首先确保 linux服务上的 mysql 的3306端口是对外开放的 编辑 vi /etc/sysconfig/iptable ...
- VSCode远程连接Docker
一.Docker开启远程访问 [root@local host ~]# vi /lib/systemd/system/docker.service #修改ExecStart这行 ExecStart=/ ...
- 客户端远程连接docker容器中的mysql 报1251错误
1.启动容器: [root@localhost ~]# docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql2.进入容器: [r ...
- Windows2008/2012多用户同时远程连接终端服务授权
Windows服务器多用户同时登录问题,仅提供要点,其它自行百度: 1,Windows Server 远程桌面默认只能2个连接 2,安装终端服务(远程桌面会话主机).终端授权(远程桌面授权) 3,终端 ...
- Windows2008/2012/2016多用户同时远程连接终端服务授权
win2016多用户登录: 添加角色“远程桌面服务”,子角色“远程桌面会话主机”和“远程桌面授权”,重启 远程桌面授权,激活服务器,企业协议,协议号6565792,授权模式“每用户” 本地策略管理器g ...
- 远程连接ORACLE服务
远程服务端操作系统: Windows Server 2003 Enterprise Edition sp2ORACLE 版本: Oracle 9.2.0.1.0 正式版 本地客户端操作系统: Wind ...
随机推荐
- JAVA——拆分位数
2024/07/09 题目: 解题: import java.util.Scanner; public class Main { public static void main(String[] ar ...
- Prism:框架介绍与安装
Prism:框架介绍与安装 什么是Prism? Prism是一个用于在 WPF.Xamarin Form.Uno 平台和 WinUI 中构建松散耦合.可维护和可测试的 XAML 应用程序框架 Gith ...
- win10远程登录的账号密码
win10有了一个windows hello,还有本地账号,还有microsoft账号 在 设置-账户信息 这里可以设置登录一个 Microsoft账号,然后远程登录的时候,用的是 Microsoft ...
- 【YashanDB知识库】YAS-00220, utf8 sequence is wrong
[问题分类]功能使用 [关键字]YAS-00220,utf8 sequence is wrong [问题描述]在数据库执行select语句时,或者在exp导出数据库用户时报这个错误,表字段中同时存在n ...
- EF Core – Table / Entity Splitting
参考 Docs – Advanced table mapping Table Splitting Table Splitting 指的是把一个表映射到多个 Entity,或者反过来说就是把多个 Ent ...
- CSharp的@microsoft/signalr实时通信教程 - 前端 vue
1. 安装@microsoft/signalr pnpm install @microsoft/signalr --save signalr 是微软对 websocket技术的封装,优化了操作 :1. ...
- Vue中mixins(混入)的介绍和使用
为什么引进 mixins 随着项目的开发,组件越来越多 ,这就导致了在各个组件中需要编写功能相同的代码段,重复地定义这些相同的属性和方法,导致代码地冗余,还不利于后期代码的维护 混入mixins 的创 ...
- 揭秘 FineVideo 数据集构建的背后的秘密
开放视频数据集稀缺,因此减缓了开源视频 AI 的发展.为此,我们构建了 FineVideo,这是一个包含 43,000 个视频的数据集,总时长为 3,400 小时,并带有丰富的描述.叙事细节.场景分割 ...
- day05-JDK的卸载与安装
JDK卸载 右键我的电脑--属性--高级系统设置--环境变量,找到JAVA_HOME安装目录,删除Java安装目录 删除JAVA_HOME 删除path下关于java的目录 cmd查看Java -ve ...
- 快来考试拿证书!KubeSphere 个人技能专业考试认证上线啦!
以容器技术和容器编排为基础的云原生应用,被越来越多的企业用户接受和使用,并且在生产环境中使用容器技术的比例逐年增加.Kubernetes 无疑已经成为容器编排的事实基础,而依托于 Kubernetes ...