vs2022不安装docker desktop可以打包镜像吗

vs2022开发的项目可以直接打包镜像到 linux主机。
idea 可以使用docker插件直接打包镜像到linux,我想vs2022也可以,于是开始摸索
官网只说支持docker desktop 本机打包,但是安装docker desktop 再加上安装虚拟机特性占用空间太大
,能不能借助远程linux主机打包呢,答案是肯定的。
第一、下载docker-ce的win版本,由于docker官网被墙,可通过各大学镜像站下载
最新版是docker-27.1.2.zip 13-Aug-2024 13:46 38752050
解压后 有2个文件 docker和 dockerd, 一个是命令行工具,一个是docker引擎
如果不在本地运行虚拟机,不需要用到dockerd引擎。
加入window 环境变量 ,在PATH变量后追加 docker.exe所在路径。
 
第二、设置docker主机环境变量
在windows系统设置环境变量:
DOCKER_HOST 设置为tcp://192.168.200.110:2375
在linux主机开启2375端口所有ip监听(默认情况下只支持本地连接127.0.0.1:2375)

vim /lib/systemd/system/docker.service
找到ExecStart行,修改为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo ufw allow 2375/tcp

更多细节自行百度。

第三、项目增加docker支持
在项目右键菜单-添加 ,选择Docker支持...
选项如下,确定后会在项目目录生成Dockerfile文件(这个文件一般不需要修改)

 第四、开始打包镜像

先测试docker 客户端能否连上linux服务器
docker ps 一下,看看能否显示出 正在运行的容器(没有容器运行至少不报错)
如果没有错误,就可以开始构建镜像了
首先 在powershell 或 cmd 命令下,构建总是失败,可能是window 路径 与linux 不一致
copy命令无法正常工作,vs2022 中选中 Dockerfile,右键点“生成docker 映像” 构建也有问题:
镜像能够打包成功,项目build阶段的文件没有拷贝到镜像里,导致entrypoint 为null,docker run 无法正常运行。
最后利用gitbash 命令构建可以成功 (git bash需要安装git客户端就会有下载地址:https://git-scm.com/downloads
构建命令:docker build -t webapi:dev .
命令执行完毕后,docker image ls 一下看看没有刚刚构建的镜像了。
docker run -d -p:8085:80 --name=webapi-test webapi:dev
容器跑起来后不会退出,远程也可以正常访问了。
 
 
posted @ 2024-08-23 11:07  秀峰1  阅读(199)  评论(1编辑  收藏  举报