背景
本地开发了一个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,否则查询不到容器。
到此这篇关于windows远程连接docker服务的文章就介绍到这了,更多相关windows连接docker服务内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论